Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all
名前
mkfifo - FIFOスペシャルファイル(名前付きパイプ)を作成する
書式
#include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *pathname, mode_t mode);
説明
mkfifo() は名前 pathname を持つFIFOスペシャルファイルを作成 する。FIFOの許可モードは mode で指定され、プロセスの umask によって通常の方式で変更を受ける: 作成されたファイルの許可 モードは (mode & ~umask) となる。 FIFOスペシャルファイルはパイプに似ているが、作成のされ方のみが異なって いる。FIFOスペシャ ルファイルは名前のない通信路ではなく、 mkfifo() の呼び出しによりファイルシステムの中に加 えられる。 ひとたびこのようにしてFIFOスペシャルファイルが作成されると、通常のファ イルと同じよう に、どのプロセスからでも読み出し、書き込み用にこれをオー プンすることができる。ただし、こ れに対する全ての入出力操作に先立って その両端がオープンされている必要がある。FIFOを読み出 し用にオープンする と、通常他のプロセスによって同じFIFOが書き込み用にオープンされるまでブ ロックされ、逆の場合も同様である。 FIFOスペシャルファイルをブロックせずに扱う方法について は fifo(7) を参照のこと。
返り値
成功した場合 mkfifo() は 0 を返す。 エラーの場合 -1 を返す (また errno が適切に設定され る)。
エラー
EACCES pathname の中のディレクトリの一つに対し検索(実行)許可がない。 EDQUOT ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。 EEXIST pathname がすでに存在する。 これには pathname がシンボリックリンクである場合も含ま れる (シンボリックリンクがリンク切れか (dangling) どうかは関係ない)。 ENAMETOOLONG pathname の長さが PATH_MAX を超えているか、個々のファイル 名部分の長さが NAME_MAX を超えている。GNUシステムにおいては、ファ イル名の全体の長さに対しては制限は課せら れていないが、ファイルシステム によっては各部分の長さに制限のある可能性がある。 ENOENT pathname 中のディレクトリ部分が存在しない、 もしくはリンク先の無いシンボリックリン クである。 ENOSPC ディレクトリまたはファイルシステムに新規ファイルを作成する余地がない。 ENOTDIR pathname 中のディレクトリ要素が、実際にはディレクトリでない。 EROFS pathname が読み取り専用のファイルシステムを指している。
準拠
POSIX.1-2001.
関連項目
mkfifo(1), close(2), open(2), read(2), stat(2), umask(2), write(2), mkfifoat(3), fifo(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。