OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man7 / pipe.7
index 50bff21..22e29d7 100644 (file)
 .\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved.
 .\" Translated 2005-12-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\"
-.TH PIPE 7 2005\-12\-08 Linux "Linux Programmer's Manual"
+.TH PIPE 7 2014\-07\-08 Linux "Linux Programmer's Manual"
 .SH 名前
 pipe \- パイプと FIFO の概要
 .SH 説明
 パイプと FIFO (名前付きパイプともいう) は、 単方向のプロセス間通信チャネルを提供する。 パイプには「読み出し側」と「書き込み側」がある。
 パイプの書き込み側で書き込まれたデータは、 パイプの読み出し側から読み出すことができる。
 
\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81«ã\81¯ \fBpipe\fP(2)  ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 \fBpipe\fP(2)  ã\81¯æ\96°ã\81\97ã\81\84ã\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を二つ返す。
-ディスクリプタのうち、一方はパイプの読み出し側を、もう一方は 書き込み側を参照している。 パイプは関連するプロセス間の通信を作成するのに使用できる。
\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81«ã\81¯ \fBpipe\fP(2)  ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 \fBpipe\fP(2)  ã\81¯æ\96°ã\81\97ã\81\84ã\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を二つ返す。
\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ä¸\80æ\96¹ã\81¯ã\83\91ã\82¤ã\83\97ã\81®èª­ã\81¿å\87ºã\81\97å\81´ã\82\92ã\80\81ã\82\82ã\81\86ä¸\80æ\96¹ã\81¯ æ\9b¸ã\81\8dè¾¼ã\81¿å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\83\91ã\82¤ã\83\97ã\81¯é\96¢é\80£ã\81\99ã\82\8bã\83\97ã\83­ã\82»ã\82¹é\96\93ã\81®é\80\9aä¿¡ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\80\82
 例は \fBpipe\fP(2)  を参照。
 
 FIFO (First In First Out の省略) はファイルシステムでの名前を持ち、 \fBopen\fP(2)  を使ってオープンできる
@@ -58,12 +58,12 @@ FIFO (First In First Out の省略) はファイルシステムでの名前を
 
 パイプにより提供される通信チャネルは「バイトストリーム」であり、 メッセージ境界の概念はない。
 
\83\91ã\82¤ã\83\97ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が すべてクローズされた後で、そのパイプから \fBread\fP(2)  を行おうとした場合、
\83\91ã\82¤ã\83\97ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が すべてクローズされた後で、そのパイプから \fBread\fP(2)  を行おうとした場合、
 end\-of\-file (ファイル末尾) が見える (\fBread\fP(2)  は 0 を返す)。
\83\91ã\82¤ã\83\97ã\81®èª­ã\81¿å\87ºã\81\97å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が すべてクローズされた後で、 \fBwrite\fP(2)  を行うと、呼び出し元プロセスに
\83\91ã\82¤ã\83\97ã\81®èª­ã\81¿å\87ºã\81\97å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が すべてクローズされた後で、 \fBwrite\fP(2)  を行うと、呼び出し元プロセスに
 \fBSIGPIPE\fP シグナルが送られる。 呼び出し元プロセスがこのシグナルを無視しているときには、 \fBwrite\fP(2)  はエラー
 \fBEPIPE\fP で失敗する。 \fBpipe\fP(2)  と \fBfork\fP(2)  を使用するアプリケーションでは、 \fBclose\fP(2)
\82\92é\81©å\88\87ã\81«ä½¿ã\81£ã\81¦ä¸\8då¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の複製を クローズすべきである。こうすることで、必要な時に確実に end\-of\-file や
\82\92é\81©å\88\87ã\81«ä½¿ã\81£ã\81¦ä¸\8då¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の複製を クローズすべきである。こうすることで、必要な時に確実に end\-of\-file や
 \fBSIGPIPE\fP/\fBEPIPE\fP が配送されるようになる。
 
 パイプには \fBlseek\fP(2)  を行うことはできない。
@@ -74,13 +74,16 @@ end\-of\-file (ファイル末尾) が見える (\fBread\fP(2)  は 0 を返す)
 読み出し側のプロセスはデータが利用可能になったらできるだけすぐに 読み出しを行うように、アプリケーションを設計すべきである。
 
 バージョン 2.6.11 より前の Linux ではパイプの容量はシステムのページサイズ と同じであった (例えば i386 では 4096 バイト)。
-Linux 2.6.11 以降では、パイプの容量は 65536 バイトである。
+Linux 2.6.11 以降では、パイプの容量は 65536 バイトである。 Linux 2.6.35 以降では、パイプの容量のデフォルト値は
+65536 バイトだが、 パイプの容量を参照、設定を \fBfcntl\fP(2) の \fBF_GETPIPE_SZ\fP と \fBF_SETPIPE_SZ\fP
+操作を使って行うことができる。 詳細は \fBfcntl\fP(2) 参照。
+
 .SS PIPE_BUF
 POSIX.1\-2001 では、 \fBPIPE_BUF\fP バイト以下の \fBwrite\fP(2)  は atomic
 に行われること、つまりパイプへの出力データの書き込みは 連続したシーケンスとして行われることを必須としている (MUST)。 \fBPIPE_BUF\fP
 バイトより多くのデータを書き込み場合は atomic とはならない、 つまりパイプへの他のプロセスによるデータの書き込みが間に入る 可能性がある。
 POSIX.1\-2001 の仕様では、 \fBPIPE_BUF\fP は最小でも 512 バイトであることが要求されている (Linux では
-\fBPIPE_BUF\fP ã\81¯ 4096 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8b\80\82 æ­£ç¢ºã\81ªå\8b\95ä½\9cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が nonblocking (\fBO_NONBLOCK\fP)
+\fBPIPE_BUF\fP ã\81¯ 4096 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8b\80\82 æ­£ç¢ºã\81ªå\8b\95ä½\9cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が nonblocking (\fBO_NONBLOCK\fP)
 かどうか、パイプへの書き込みが複数から行われるかどうか、および 書き込みを行うバイト数 \fIn\fP により決定される。
 .TP 
 \fBO_NONBLOCK\fP 無効, \fIn\fP <= \fBPIPE_BUF\fP
@@ -114,6 +117,6 @@ POSIX.1\-2001 では、パイプは一方向の通信だけに対応していれ
 \fBdup\fP(2), \fBfcntl\fP(2), \fBopen\fP(2), \fBpipe\fP(2), \fBpoll\fP(2), \fBselect\fP(2),
 \fBsocketpair\fP(2), \fBstat\fP(2), \fBmkfifo\fP(3), \fBepoll\fP(7), \fBfifo\fP(7)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。