.\" to EXAMPLE text.
.\" 2008-10-10, mtk: add description of pipe2()
.\"
-.\" Japanese Version Copyright (c) 1997 SUTO, Mitsuaki
-.\" all rights reserved.
-.\" Translated Thu Jun 26 21:09:51 JST 1997
-.\" by SUTO, Mitsuaki <suto@av.crl.sony.co.jp>
-.\" Updated & Modified Thu Feb 10 00:47:11 JST 2005
-.\" by Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated & Modified Sat Dec 17 08:10:16 JST 2005 by Yuichi SATO
-.\" Updated 2008-02-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.77
-.\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13
+.\"*******************************************************************
.\"
-.TH PIPE 2 2010-09-10 "Linux" "Linux Programmer's Manual"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PIPE 2 2012\-02\-14 Linux "Linux Programmer's Manual"
.SH 名前
pipe, pipe2 \- パイプを生成する
.SH 書式
.nf
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
.sp
-.BI "int pipe(int " pipefd "[2]);"
+\fBint pipe(int \fP\fIpipefd\fP\fB[2]);\fP
.sp
-.BR "#define _GNU_SOURCE" " /* feature_test_macros(7) 参照 */"
-.B #include <unistd.h>
+\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
+\fB#include <fcntl.h>\fP /* O_* 定数の定義の取得 */
+\fB#include <unistd.h>\fP
.sp
-.BI "int pipe2(int " pipefd "[2], int " flags );
+\fBint pipe2(int \fP\fIpipefd\fP\fB[2], int \fP\fIflags\fP\fB);\fP
.fi
.SH 説明
-.BR pipe (2)
-はパイプを生成する。
-パイプは、プロセス間通信に使用できる単方向のデータチャネルである。
-配列
-.I pipefd
-は、パイプの両端を参照する二つのファイルディスクリプタを
-返すのに使用される。
-.I pipefd[0]
-がパイプの読み出し側、
-.I pipefd[1]
-がパイプの書き込み側である。
-パイプの書き込み側に書き込まれたデータは、
-パイプの読み出し側から読み出されるまでカーネルでバッファリングされる。
-さらなる詳細は
-.BR pipe (7)
-を参照のこと。
+\fBpipe\fP(2) はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向のデータチャネルである。 配列 \fIpipefd\fP
+は、パイプの両端を参照する二つのファイルディスクリプタを 返すのに使用される。 \fIpipefd[0]\fP がパイプの読み出し側、
+\fIpipefd[1]\fP がパイプの書き込み側である。 パイプの書き込み側に書き込まれたデータは、
+パイプの読み出し側から読み出されるまでカーネルでバッファリングされる。 さらなる詳細は \fBpipe\fP(7) を参照のこと。
-.BR pipe2 ()
-は
-.I flags
-が 0 の場合には
-.BR pipe ()
-と同じである。
-.I flags
-に以下の値をビット毎の論理和 (OR) で指定することで、
-異なる動作をさせることができる。
-.TP 12
-.B O_NONBLOCK
-新しく生成される二つのオープンファイル記述 (open file description) の
-.B O_NONBLOCK
-ファイルステータスフラグをセットする。
-このフラグを使うことで、
-.B O_NONBLOCK
-をセットするために
-.BR fcntl (2)
+\fBpipe2\fP() は \fIflags\fP が 0 の場合には \fBpipe\fP() と同じである。 \fIflags\fP に以下の値をビット毎の論理和
+(OR) で指定することで、 異なる動作をさせることができる。
+.TP 12
+\fBO_NONBLOCK\fP
+新しく生成される二つのオープンファイル記述 (open file description) の \fBO_NONBLOCK\fP
+ファイルステータスフラグをセットする。 このフラグを使うことで、 \fBO_NONBLOCK\fP をセットするために \fBfcntl\fP(2)
を追加で呼び出す必要がなくなる。
-.TP
-.B O_CLOEXEC
-新しく生成される二つのファイルディスクリプタの
-close-on-exec
-.RB ( FD_CLOEXEC )
-フラグをセットする。
-このフラグが役に立つ理由については、
-.BR open (2)
-の
-.B O_CLOEXEC
-フラグの説明を参照のこと。
+.TP
+\fBO_CLOEXEC\fP
+新しく生成される二つのファイルディスクリプタの close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.SH 返り値
-成功した場合 0 が返る。失敗した場合 \-1 が返り、
-.I errno
-がエラーの内容に従って設定される。
+成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
-.TP
-.B EFAULT
-.I pipefd
-が無効な値である。
-.TP
-.B EINVAL
-.RB ( pipe2 ())
-.I flags
-に無効な値が入っている。
-.TP
-.B EMFILE
+.TP
+\fBEFAULT\fP
+\fIpipefd\fP が無効な値である。
+.TP
+\fBEINVAL\fP
+(\fBpipe2\fP()) \fIflags\fP に無効な値が入っている。
+.TP
+\fBEMFILE\fP
このプロセスで使われているファイルディスクリプタが多すぎる。
-.TP
-.B ENFILE
-ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81®ç·\8fæ\95°ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81®å\88¶é\99\90ã\81«é\81\94ã\81\97ã\81\9f。
+.TP
+\fBENFILE\fP
+ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81®ç·\8fæ\95°ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81®å\88¶é\99\90ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\82\8b。
.SH バージョン
-.BR pipe2 ()
-はバージョン 2.6.27 で Linux に追加された。
-glibc によるサポートはバージョン 2.9 以降で利用できる。
+\fBpipe2\fP() はバージョン 2.6.27 で Linux に追加された。 glibc によるサポートはバージョン 2.9 以降で利用できる。
.SH 準拠
-.BR pipe ():
-POSIX.1-2001.
+\fBpipe\fP(): POSIX.1\-2001.
-.BR pipe2 ()
-は Linux 固有である。
+\fBpipe2\fP() は Linux 固有である。
.SH 例
-.\" fork.2 はこの例のプログラムを参照している。
-以下のプログラムではパイプを生成し、その後
-.BR fork (2)
-で子プロセスを生成する。
-子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを
-継承する。
-.BR fork (2)
-の後、各プロセスはパイプ
-.RB ( pipe (7)
-を参照) に必要がなくなったディスクリプタをクローズする。
-親プロセスはプログラムのコマンドライン引き数に含まれる
-文字列をパイプへ書き込み、
-子プロセスはこの文字列をパイプから 1 バイトずつ読み込んで標準出力にエコーする。
+.\" fork.2 refers to this example program.
+以下のプログラムではパイプを生成し、その後 \fBfork\fP(2) で子プロセスを生成する。
+子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを 継承する。 \fBfork\fP(2) の後、各プロセスはパイプ
+(\fBpipe\fP(7) を参照) に必要がなくなったディスクリプタをクローズする。 親プロセスはプログラムのコマンドライン引き数に含まれる
+文字列をパイプへ書き込み、 子プロセスはこの文字列をパイプから 1 バイトずつ読み込んで標準出力にエコーする。
.nf
#include <sys/wait.h>
char buf;
if (argc != 2) {
- fprintf(stderr, "Usage: %s <string>\\n", argv[0]);
+ fprintf(stderr, "Usage: %s <string>\en", argv[0]);
exit(EXIT_FAILURE);
}
while (read(pipefd[0], &buf, 1) > 0)
write(STDOUT_FILENO, &buf, 1);
- write(STDOUT_FILENO, "\\n", 1);
+ write(STDOUT_FILENO, "\en", 1);
close(pipefd[0]);
_exit(EXIT_SUCCESS);
}
.fi
.SH 関連項目
-.BR fork (2),
-.BR read (2),
-.BR socketpair (2),
-.BR write (2),
-.BR popen (3),
-.BR pipe (7)
+\fBfork\fP(2), \fBread\fP(2), \fBsocketpair\fP(2), \fBwrite\fP(2), \fBpopen\fP(3),
+\fBpipe\fP(7)