.\"
.TH FIFO 7 2008-12-03 "Linux" "Linux Programmer's Manual"
.\"O .SH NAME
-.SH ̾Á°
-fifo \- ÀèÆþÀè½ÐÆüì¥Õ¥¡¥¤¥ë¡¢Ì¾Á°ÉÕ¤¥Ñ¥¤¥×
+.SH 名前
+fifo \- 先入先出特殊ファイル、名前付きパイプ
.\"O .SH DESCRIPTION
-.SH ½ñ¼°
+.SH 書式
.\"O A FIFO special file (a named pipe) is similar to a pipe,
.\"O except that it is accessed as part of the file system.
.\"O It can be opened by multiple processes for reading or
.\"O contents on the file system; the file system entry merely
.\"O serves as a reference point so that processes can access
.\"O the pipe using a name in the file system.
-FIFO Æüì¥Õ¥¡¥¤¥ë(̾Á°ÉÕ¤¥Ñ¥¤¥×)¤Ï¥Ñ¥¤¥×¤Ë»÷¤Æ¤¤¤ë¤¬¡¢
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°ìÉô¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤ëÅÀ¤¬°Û¤Ã¤Æ¤¤¤ë¡£
-Ê£¿ô¤Î¥×¥í¥»¥¹¤¬Æɤ߹þ¤ß¤ä½ñ¤¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤¹¤ë¤³¤È
-¤¬¤Ç¤¤ë¡£¥×¥í¥»¥¹¤¬ FIFO ¤òÄ̤·¥Ç¡¼¥¿¤ò¸ò´¹¤¹¤ë¾ì¹ç¡¢
-¼ÂºÝ¤Ë¤½¤ì¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ï½ñ¤¹þ¤Þ¤º¡¢¥«¡¼¥Í¥ë¤ÏÁ´¤Æ¤Î
-¥Ç¡¼¥¿¤òÆâÉôŪ¤ËÅϤ¹¡£¤³¤Î¤è¤¦¤Ë¡¢FIFO Æüì¥Õ¥¡¥¤¥ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
-¾å¤Ë¤ÏÆâÍƤò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¨¥ó¥È¥ê¤Ï
-¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î̾Á°¤ò»ÈÍѤ·¤Æ¤½¤Î¥Ñ¥¤¥×¤Ë
-¥¢¥¯¥»¥¹¤Ç¤¤ë¤è¤¦¤Ë»²¾È¥Ý¥¤¥ó¥È¤òÄ󶡤·¤Æ¤¤¤ë¤Ë²á¤®¤Ê¤¤¡£
+FIFO 特殊ファイル(名前付きパイプ)はパイプに似ているが、
+ファイルシステムの一部に関連付けられている点が異っている。
+複数のプロセスが読み込みや書き込みのためにオープンすること
+ができる。プロセスが FIFO を通しデータを交換する場合、
+実際にそれをファイルシステムには書き込まず、カーネルは全ての
+データを内部的に渡す。このように、FIFO 特殊ファイルはファイルシステム
+上には内容を持たないので、ファイルシステムのエントリは
+プロセスがそのファイルシステム上の名前を使用してそのパイプに
+アクセスできるように参照ポイントを提供しているに過ぎない。
.PP
.\"O The kernel maintains exactly one pipe object for each
.\"O FIFO special file that is opened by at least one process.
.\"O before data can be passed.
.\"O Normally, opening the FIFO blocks
.\"O until the other end is opened also.
-¥«¡¼¥Í¥ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë
-FIFO Æüì¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¡¢¤½¤ì¤¾¤ì°ì¤Ä¤Î¥Ñ¥¤¥×¤Î¤ß¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£
-¥Ç¡¼¥¿¤¬ÅϤµ¤ì¤ëÁ°¤Ë¤½¤Î FIFO ¤Îξü(½ñ¤¹þ¤ß¤ÈÆɤ߽Ф·)¤¬¥ª¡¼¥×¥ó
-¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Ä̾FIFO ¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¡¢
-¤½¤ÎÈ¿ÂЦ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤ë¤Þ¤ÇÄä»ß(block)¤µ¤»¤é¤ì¤ë¡£
+カーネルは、少なくとも一つのプロセスによってオープンされている
+FIFO 特殊ファイルについて、それぞれ一つのパイプのみを管理している。
+データが渡される前にその FIFO の両端(書き込みと読み出し)がオープン
+されていなければならない。通常、FIFO をオープンすると、
+その反対側がオープンされるまで停止(block)させられる。
.PP
.\"O A process can open a FIFO in nonblocking mode.
.\"O In this
.\"O .B ENXIO
.\"O (no such device or address) unless the other
.\"O end has already been opened.
-¥×¥í¥»¥¹¤Ï FIFO ¤òÈóÄä»ß(nonblocking)¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤â¤Ç¤¤ë¡£
-¤³¤Î¾ì¹ç¡¢Æɤ߹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤·¤¿¾ì¹ç¤Ë¤Ï½ñ¤¹þ¤ß¦¤òï¤â¥ª¡¼¥×¥ó
-¤·¤Æ¤¤¤Ê¤¯¤Æ¤âÀ®¸ù¤¹¤ë¡£½ñ¤¹þ¤ßÀìÍѤǥª¡¼¥×¥ó¤·¤¿¾ì¹ç¤ÏÈ¿ÂЦ¤¬´û¤Ë
-¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð
+プロセスは FIFO を非停止(nonblocking)モードでオープンすることもできる。
+この場合、読み込み専用でオープンした場合には書き込み側を誰もオープン
+していなくても成功する。書き込み専用でオープンした場合は反対側が既に
+オープンされていなければ
.B ENXIO
-(¤½¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤Þ¤¿¤Ï¥¢¥É¥ì¥¹¤Ï¸ºß¤·¤Ê¤¤)
-¤È¤¤¤¦¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£
+(そのようなデバイスまたはアドレスは存在しない)
+というエラーで失敗する。
.PP
.\"O Under Linux, opening a FIFO for read and write will succeed
.\"O both in blocking and nonblocking mode.
.\"O A process
.\"O that uses both ends of the connection in order to communicate
.\"O with itself should be very careful to avoid deadlocks.
-Linux ¤Ç¤Ï¡¢FIFO ¤òÆɤ߹þ¤ß¤È½ñ¤¹þ¤ßξÍѤ˥ª¡¼¥×¥ó¤·¤¿¾ì¹ç¡¢
-Ää»ß¡¢ÈóÄä»ß¤Î¤É¤Á¤é¤Î¥â¡¼¥É¤Ç¤âÀ®¸ù¤¹¤ë¡£POSIX ¤Ç¤Ï¤³¤Î¾ì¹ç¤Î
-Æ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£¤³¤ì¤ÏÆɤ߹þ¤ß¦¤¬¤¤¤Ê¤¤»þ¤Ë½ñ¤¹þ¤ßÍѤË
-¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£¼«Ê¬¼«¿È¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤Ë
-ξü¤ò»ÈÍѤ¹¤ë¥×¥í¥»¥¹¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¤òÈò¤±¤ë¤¿¤á¤ËÈó¾ï¤ËÃí°Õ¿¼¤¯
-¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+Linux では、FIFO を読み込みと書き込み両用にオープンした場合、
+停止、非停止のどちらのモードでも成功する。POSIX ではこの場合の
+動作は定義されていない。これは読み込み側がいない時に書き込み用に
+オープンするために使用することができる。自分自身と通信するために
+両端を使用するプロセスはデッドロックを避けるために非常に注意深く
+なければならない。
.\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
.\"O When a process tries to write to a FIFO that is not opened
.\"O for read on the other side, the process is sent a
.\"O .B SIGPIPE
.\"O signal.
-¥×¥í¥»¥¹¤¬¡¢È¿ÂФÎÆɤ߹þ¤ß¦¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ FIFO ¤ò
-½ñ¤¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢¤½¤Î¥×¥í¥»¥¹¤Ë
+プロセスが、反対の読み込み側がオープンされていない FIFO を
+書き込みのためにオープンしようとした場合、そのプロセスに
.B SIGPIPE
-¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£
+シグナルが送られる。
.\"O FIFO special files can be created by
.\"O .BR mkfifo (3),
.\"O and are indicated by
.\"O .IR "ls \-l"
.\"O with the file type \(aqp\(aq.
-FIFO Æüì¥Õ¥¡¥¤¥ë¤Ï
+FIFO 特殊ファイルは
.BR mkfifo (3)
-¤ÇºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¡¢
+で作成することができ、
.IR "ls \-l"
-¤Ç¤Ï¥Õ¥¡¥¤¥ë¼ïÊÌ \(aqp\(aq ¤Çɽ¼¨¤µ¤ì¤ë¡£
+ではファイル種別 \(aqp\(aq で表示される。
.\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
.BR mkfifo (1),
.BR open (2),
.BR pipe (2),