.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH GETLINE 3 2010\-06\-12 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 2001 Yuichi SATO
+.\" all rights reserved.
+.\" Translated 2001-11-09, Yuichi SATO <ysato@h4.dion.ne.jp>
+.\" Updated 2006-07-20, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.34
+.\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24
+.\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH GETLINE 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
getline, getdelim \- 区切り文字までの文字列入力を読み込む
.SH 書式
\fBgetline\fP() は \fIstream\fP から 1 行全てを読み込み、テキストが含まれているバッファのアドレスを \fI*lineptr\fP
に格納する。 バッファはヌル文字 (\e0) で終端される。 改行文字が見つかった場合は、改行文字もバッファに格納される。
-\fI*lineptr\fP が NULL の場合、 \fBgetline\fP() は行の内容を格納するためのバッファを確保する。
-このバッファはユーザーのプログラムで解放すべきである (この場合、 \fI*n\fP の値は無視される)。
+\fI*lineptr\fP が NULL にセットされ、 \fI*n\fP が呼び出し前に 0 にセットされた場合、 \fBgetline\fP()
+は行の内容を格納するためのバッファを確保する。 このバッファは、 \fBgetline\fP()
+が失敗した場合であっても、ユーザーのプログラムで解放すべきである。
別の方法として、 \fBgetline\fP() を呼び出す際に、 \fI*lineptr\fP に \fBmalloc\fP(3) で確保した大きさ \fI*n\fP
バイトのバッファへのポインタを入れて渡すこともできる。 読み込んだ行を保持するのに十分なバッファがない場合、 \fBgetline\fP() は
に指定することができる。 \fBgetline\fP() と同様に、ファイル終端に達するまでに入力行に区切り文字が見付からない場合は、
区切り文字をバッファに追加しない。
.SH 返り値
-成功した場合、 \fBgetline\fP() と \fBgetdelim\fP() は読み込んだ文字数を返す。 文字数には区切り文字は含まれるが、終端に使う
-NULL バイトは含まれない。 この値によって、読み込んだ行に含まれる NULL バイトを操作することができる。
+成功した場合、 \fBgetline\fP() と \fBgetdelim\fP() は読み込んだ文字数を返す。
+文字数には区切り文字は含まれるが、終端に使うヌルバイト (\(aq\e0\(aq) は含まれない。
+この値によって、読み込んだ行に含まれるヌルバイトを操作することができる。
-どちらの関数も、行の読み込みに失敗した場合には \-1 を返す (ファイルの終端に達した場合にも \-1 を返す)。
+どちらの関数も、行の読み込みに失敗した場合には \-1 を返す (ファイルの終端に達した場合にも \-1 を返す)。 エラーが発生した場合には、
+\fIerrno\fP にエラーの原因を示す値が設定される。
.SH エラー
.TP
\fBEINVAL\fP
引き数が不正である (\fIn\fP または \fIlineptr\fP が NULL である。 もしくは \fIstream\fP が有効でない)。
-.SH バージョン
-これらの関数は libc 4.6.27 以降で利用可能である。
.SH 準拠
\fBgetline\fP() と \fBgetdelim\fP() は、どちらも元は GNU による拡張であったが、 POSIX.1\-2008
で標準化された。
int
main(void)
{
- FILE *fp;
+ FILE *stream;
char *line = NULL;
size_t len = 0;
ssize_t read;
- fp = fopen("/etc/motd", "r");
- if (fp == NULL)
+ stream = fopen("/etc/motd", "r");
+ if (stream == NULL)
exit(EXIT_FAILURE);
- while ((read = getline(&line, &len, fp)) != \-1) {
+ while ((read = getline(&line, &len, stream)) != \-1) {
printf("Retrieved line of length %zu :\en", read);
printf("%s", line);
}
free(line);
+ fclose(stream);
exit(EXIT_SUCCESS);
}
.fi
.SH 関連項目
-\fBread\fP(2), \fBfgets\fP(3), \fBfopen\fP(3), \fBfread\fP(3), \fBgets\fP(3), \fBscanf\fP(3)
+\fBread\fP(2), \fBfgets\fP(3), \fBfopen\fP(3), \fBfread\fP(3), \fBscanf\fP(3)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。