.\" Copyright 2005 walter harms (walter.harms@informatik.uni-oldenburg.de),
.\" and Copyright 2005, 2012 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
.\" Distributed under the GPL.
+.\" %%%LICENSE_END
+.\"
.\" 2008-12-04, Petr Baudis <pasky@suse.cz>: Document open_wmemstream()
.\"
.\"*******************************************************************
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH FMEMOPEN 3 2012\-04\-28 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 2005, 2006 Akihiro MOTOKI
+.\" all rights reserved.
+.\" Translated 2005-12-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2006-01-20, Akihiro MOTOKI
+.\" Updated 2006-07-20, Akihiro MOTOKI
+.\" Updated 2008-11-08, Akihiro MOTOKI, LDP v3.13
+.\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24
+.\" Updated 2012-05-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH FMEMOPEN 3 2014\-04\-06 GNU "Linux Programmer's Manual"
.SH 名前
fmemopen, open_memstream, open_wmemstream \- メモリをストリームとしてオープンする
.SH 書式
.PP
引き数 \fImode\fP は \fBfopen\fP(3) の場合と同じである。 \fImode\fP で追記モード
(append mode) が指定された場合、ファイル位置の初期値は バッファ中の
-最初の NULL バイト (\(aq\e0\(aq) の位置に設定される。
+最初のヌルバイト (\(aq\e0\(aq) の位置に設定される。
それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。
glibc 2.9 以降では、文字 \(aqb\(aq を \fImode\fP の二番目の文字として指定
することができる。 この文字は「バイナリ」モードを指定するものである。
ではなく、バッファの末尾 (\fIsize\fP で指定した値) からの相対値となる。
.PP
書き込み用にオープンされたストリームをフラッシュ (\fBfflush\fP(3)) やクローズ (\fBfclose\fP(3)) した時に、
-(バッファに空きがあれば) NULL バイトがバッファの末尾に書き込まれる。 このようにするためには、呼び出し元は バッファに 1バイト余裕を作る
+(バッファに空きがあれば) ヌルバイトがバッファの末尾に書き込まれる。 このようにするためには、呼び出し元は バッファに 1バイト余裕を作る
(\fIsize\fP にこの 1バイトを含めた値を指定する) 必要がある。
.\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1995
を使って、呼び出し側が明示的に stdio ストリームバッファとして \fIbuf\fP を指定し、バッファの指定時にバッファのサイズを stdio
に教える方法がある。)
.PP
-読み出し用にオープンされたストリームでは、 バッファ内に NULL バイト (\(aq\e0\(aq) があっても 読み出し操作がファイル末尾
+読み出し用にオープンされたストリームでは、 バッファ内にヌルバイト (\(aq\e0\(aq) があっても 読み出し操作がファイル末尾
(end\-of\-file) を返すことはない。 バッファからの読み出しでファイル末尾が返るのは、 ファイルポインタがバッファの先頭から \fIsize\fP
バイトを越えて先に進もうとした場合だけである。
.PP
\fIsizeloc\fP の値はそれぞれバッファへのポインタとそのサイズに更新される。 これらの値は、呼び出し元がそのストリームに新たな書き込みを
行わない場合に限り有効である。 ストリームに書き込みを行った際には、これらの変数を参照する前に ストリームを再度フラッシュしなければならない。
-バッファ末尾の NULL バイトは保持される。 この NULL バイトは \fIsizeloc\fP に格納されるサイズには「含まれない」。
+バッファ末尾のヌルバイトは保持される。 このヌルバイトは \fIsizeloc\fP に格納されるサイズには「含まれない」。
ストリームのファイル位置は \fBfseek\fP(3) や \fBfseeko\fP(3) で変更できる。
すでにデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 その間の領域は 0 で埋められる。
.\" FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=13152
\fBfmemopen\fP() に追記モード ("a" や "a+") を指定すると、
-ファイル位置の初期値は最初の NULL バイトに設定されるが、(ファイル
+ファイル位置の初期値は最初のヌルバイトに設定されるが、(ファイル
オフセットをストリームの末尾以外の位置に再設定した場合)それ以降の
書き込みではストリームの末尾への追記が行われる訳ではない。
.\" FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=13151
\fBfmemopen\fP() の \fImode\fP 引き数に追記モード ("a" や "a+") を指定し、
-\fIsize\fP 引き数で指定した範囲の \fIbuf\fP 内に NULL バイトがない場合、
+\fIsize\fP 引き数で指定した範囲の \fIbuf\fP 内にヌルバイトがない場合、
POSIX.1\-2008 では、ファイル位置の初期値はバッファの末尾の直後の
バイトに設定すべきとされている。しかし、glibc の \fBfmemopen\fP() では
この場合ファイル位置は \-1 に設定される。
char *ptr;
if (argc != 2) {
- fprintf(stderr, "Usage: %s <file>\en", argv[0]);
- exit(EXIT_FAILURE);
+ fprintf(stderr, "Usage: %s <file>\en", argv[0]);
+ exit(EXIT_FAILURE);
}
in = fmemopen(argv[1], strlen(argv[1]), "r");
}
fclose(in);
fclose(out);
- printf("size=%ld; ptr=%s\en", (long) size, ptr);
+ printf("size=%zu; ptr=%s\en", size, ptr);
free(ptr);
exit(EXIT_SUCCESS);
}
.SH 関連項目
\fBfopen\fP(3), \fBfopencookie\fP(3)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。