EN JA
OPENPAM_READLINEV(3)
OPENPAM_READLINEV(3) FreeBSD Library Functions Manual OPENPAM_READLINEV(3)

名称

openpam_readlinevファイルから行を読み込み、それを単語に分割する

ライブラリ

Pluggable Authentication Module Library (libpam, -lpam)

書式

#include < sys/types.h>
#include < stdio.h>
#include < security/pam_appl.h>
#include < security/openpam.h>

char **
openpam_readlinev( FILE *f, int *lineno, int *lenp);

解説

openpam_readlinev() 関数は、ファイルから行を読み込み、 openpam_readword(3) マニュアルページに記述されている規則にしたがって単語にそれを分割し、それらの単語のリストを返します。

linenoNULL でないなら、改行文字が読み込まれるごとに、それが指す整数変数は、増加されます。これは、引用されるか、またはエスケープされる改行文字と行の終わりで改行文字を含んでいます。

lenpNULL でないなら、行の単語の数は、それが指す変数に格納されます。

戻り値

成功するなら、 openpam_readlinev() 関数は、それぞれ単一の単語を含んで、それらが、行で遭遇した順序で、個々の動的に割り付けられたヌル文字で終了する文字列へのポインタの動的に割り付けられた配列へのポインタを返します。配列は、 NULL ポインタによって終了します。

呼び出し側は、それらのそれぞれを free(3) に渡すことによって、配列と個々の文字列の両方を解放することに責任があります。

あらゆる単語が読み込まれる前に、行の終りに到達したなら、 openpam_readlinev() は、単一の NULL ポインタを含んでいる、動的に割り付けられた配列へのポインタを返します。

openpam_readlinev() 関数は、失敗して、4 つの理由のうちの 1 つのために NULL を返すかもしれません:

  • あらゆる単語が読み込まれる前に、ファイルの終りに到達しました。 errno は、0 で、 ferror(3) は、0 を返し、 feof(3) は、0 以外の値を返します。
  • 引用またはバックスラッシュのエスケープが有効だった間に、ファイルの終りに到達しました。 errno は、 EINVAL に設定され、 ferror(3) は、0 を返し、 feof(3) は、0 以外の値を返します。
  • ファイルから読み込む間にエラーが起こりました。 errno は、0 以外で、 ferror(3) は、0 以外の値を返し、 feof(3) は、0 を返します。
  • malloc(3) または realloc(3) 呼び出しが失敗しました。 errno は、 ENOMEM に設定され、 ferror(3) は、0 以外の値を返し、 feof(3) は、0 以外の値を返すかもしれないし、返さないかもしれません。

規格

openpam_readlinev() 関数は、OpenPAM の拡張です。

作者

openpam_readlinev() 関数とこのマニュアルページは、 Dag-Erling Smørgrav <des@des.no>によって開発されました。
September 7, 2013 FreeBSD