Man page - fifo(7)

Packages contains this manual

Available languages:

en fr pt_BR es pl ja ru ro zh_TW zh_CN de

Manual

FIFO

名 前
説 明
注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

fifo - FIFO 特 殊 フ ァ イ ル 、 名 前 付 き パ イ プ

説 明

FIFO 特 殊 フ ァ イ ル (名 前 付 き パ イ プ ) は パ イ プ に 似 て い る が 、 FIFO は フ ァ イ ル シ ス テ ム の 一 部 に 関 連 付 け ら れ て い る 点 が 異 な る 。 複 数 の プ ロ セ ス が 読 み 込 み や 書 き 込 み の た め に FIFO を オ ー プ ン す る こ と が で き る 。 プ ロ セ ス が FIFO を 通 し て デ ー タ を 交 換 す る 場 合 、 カ ー ネ ル は 、 デ ー タ を 実 際 に は フ ァ イ ル シ ス テ ム に 書 き 込 ま ず 、 す べ て の デ ー タ を 内 部 的 に 渡 す 。 こ の よ う に 、 FIFO 特 殊 フ ァ イ ル は フ ァ イ ル シ ス テ ム 上 に は 内 容 を 持 た な い 。 フ ァ イ ル シ ス テ ム の エ ン ト リ ー は 、 プ ロ セ ス が フ ァ イ ル シ ス テ ム 上 の 名 前 を 使 用 し て そ の パ イ プ に ア ク セ ス で き る よ う に 参 照 ポ イ ン ト を 提 供 し て い る だ け で あ る 。

カ ー ネ ル は 、 少 な く と も 一 つ の プ ロ セ ス に よ っ て オ ー プ ン さ れ て い る FIFO 特 殊 フ ァ イ ル に 関 し て 、 1 つ の FIFO 特 殊 フ ァ イ ル に つ き 1 つ の パ イ プ オ ブ ジ ェ ク ト を 管 理 す る 。 デ ー タ を 渡 す 前 に 、 FIFO の 両 端 (書 き 込 み 側 と 読 み 出 し 側 ) が オ ー プ ン さ れ て い な け れ ば な ら な い 。 通 常 、 FIFO を オ ー プ ン し よ う と し た 場 合 、 そ の 反 対 側 が オ ー プ ン さ れ る ま で 停 止 (block) さ れ る 。

プ ロ セ ス は FIFO を 非 停 止 (nonblocking) モ ー ド で オ ー プ ン す る こ と も で き る 。 こ の 場 合 、 読 み 込 み 専 用 で オ ー プ ン し よ う と し た 場 合 に は 、 書 き 込 み 側 を 誰 も オ ー プ ン し て い な く て も 成 功 す る 。 書 き 込 み 専 用 で オ ー プ ン し よ う と し た 場 合 に は 、 反 対 側 が す で に オ ー プ ン さ れ て い な い 限 り 、 ENXIO (そ の よ う な デ バ イ ス ま た は ア ド レ ス は 存 在 し な い ) と い う エ ラ ー で 失 敗 す る 。

Linux で は 、 FIFO を 読 み 書 き 両 用 で オ ー プ ン し た 場 合 、 停 止 、 非 停 止 の ど ち ら の モ ー ド で も 成 功 す る 。 POSIX で は 、 こ の 場 合 の 動 作 は 定 義 さ れ て い な い 。 こ の 動 作 は 、 読 み 込 み 側 が い な い 時 に 書 き 込 み 用 に FIFO を オ ー プ ン す る た め に 使 用 で き る 。 自 分 自 身 と 通 信 す る た め に FIFO の 両 端 を 使 用 す る プ ロ セ ス で は 、 デ ッ ド ロ ッ ク を 避 け る た め に 細 心 の 注 意 を 払 う 必 要 が あ る 。

注 意

FIFO に お け る 入 出 力 の 動 作 の 詳 細 に つ い て は 、 pipe (7) を 参 照 の こ と 。

プ ロ セ ス が 、 反 対 の 読 み 込 み 側 が オ ー プ ン さ れ て い な い FIFO に 書 き 込 も う と し た 場 合 、 そ の プ ロ セ ス に SIGPIPE シ グ ナ ル が 送 ら れ る 。

FIFO 特 殊 フ ァ イ ル は mkfifo (3) で 作 成 す る こ と が で き 、 ls -l で は フ ァ イ ル 種 別 'p' で 表 示 さ れ る 。

関 連 項 目

mkfifo (1), open (2), pipe (2), sigaction (2), signal (2), socketpair (2), mkfifo (3), pipe (7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。