MKFIFO(3)

名前
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が書き込み用にオープンされるまでブ ロックされ、逆の場合も同様である。

返り値
正常な、成功した場合の mkfifo の返り値は 0 である。エラー の場合(この場合、errno が状況に応じてセットされる)は、-1 が返される。

エラー

EACCES
    pathname の中のディレクトリの一つに対し検索(実行)許可がない。

EEXIST
    pathname がすでに存在する。

ENAMETOOLONG
    pathname の長さが PATH_MAX を超えているか、個々のファイル 名部分の長さが NAME_MAX を超えている。GNUシステムにおいては、ファ イル名の全体の長さに対しては制限は課せられていないが、ファイルシステム によっては各部分の長さに制限のある可能性がある。

ENOENT
    pathname の中のディレクトリ部分が存在しないか、リンク先のないシ ンボリックリンクである。

ENOSPC
    ディレクトリまたはファイルシステムに新規ファイルを作成する余地がない。

ENOTDIR
    pathname 中でディレクトリとして使用されている部分が実際にはディ レクトリではない。

EROFS
    pathname が読み取り専用のファイルシステムを指している。

準拠
POSIX.1

関連項目
mkfifo(1), read(2), write(2), open(2), close(2), stat(2), umask(2).