FGETLN(3)

名称
fgetln - ストリームから行を取得

ライブラリ
libc

書式
<stdio.h> char * fgetln(FILE *stream, size_t *len)

解説
fgetln() 関数は、 stream が参照するストリームから次の行のポインタを戻します。 取得した行は、 NUL 文字で終端されていませんので、C 言語での文字列では ありません。 最後の改行も含めた行の長さは、 len が指すメモリ位置に保存されます (ただし、改行で終わらないファイルの最後に行がある場合、 戻されるテキストに改行は含まれません)。

戻り値
正常終了すると、ポインタが戻されます。 このポインタは、次に stream で I/O 操作を行った後 (成功であれ失敗であれ)、あるいはストリームが 閉じた直後では無効になります。 異常終了した場合は NULL が戻されます。 fgetln() 関数は、ファイルの終了とエラーとを区別しません。 ファイルの終了かエラーかを判断するには、ルーチン feof(3) および ferror(3) を使用しなくてはなりません。 エラーが発生した場合は、そのエラーを示すために グローバル変数 errno が設定されます。 ファイルの終了状態はたとえ端末であっても記憶されます。 clearerr(3) でその状態がクリアされるまでは、 その後読込みを試みてもすべて NULL が返されます。

戻されたポインタが指し示すテキストは、 そのサイズを超えて変更を加えないという条件であれば 変更することができます。 この変更内容は、ポインタが無効になると失われます。

エラー

[EBADF]
    引数 stream が、読込み用に開いたストリームではありません。

fgetln() 関数はエラーを発生し、ルーチン fflush(3), malloc(3), read(2), stat(2), realloc(3) 用に指定されたエラーのいずれかが errno に設定される場合があります。

関連項目
ferror(3), fgets(3), fopen(3), putc(3)

歴史
fgetln() 関数は、 4.4BSD ではじめて登場しました。