MKFIFO(2)

名称
mkfifo - fifo ファイルを作成する

ライブラリ
libc

書式
<sys/types.h> <sys/stat.h> int mkfifo(const char *path, mode_t mode)

解説
mkfifo() システムコールは、 path という名前の新しい fifo ファイルを作成します。 アクセス許可は mode によって指定され、呼び出しプロセスの umask(2) の制約を受けます。

fifo の所有者 ID は、プロセスの実効ユーザ ID に設定されます。 fifo のグループ ID は、それが作成される親ディレクトリの ID に設定されます。

戻り値

エラー
mkfifo() システムコールは、次の場合に処理を失敗し、fifo は作成されません:

[ENOTSUP]
    カーネルが fifo をサポートするように構成されていません。

[ENOTDIR]
    パスの構成要素中にディレクトリ以外のものが含まれています。

[ENAMETOOLONG]
    パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。

[ENOENT]
    パスの構成要素が存在しません。

[EACCES]
    指定されたパスには、検索が許可されていないディレクトリが含まれています。

[ELOOP]
    パス名を変換するときに検出されたシンボリックリンクが多すぎます。

[EROFS]
    指定されたファイルは読取り専用ファイルシステム上にあります。

[EEXIST]
    指定のファイルがすでに存在します。

[ENOSPC]
    新しい fifo 用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステムに空き容量が残っていません。

[ENOSPC]
    fifo を作成するファイルシステム上に未使用の inode がありません。

[EDQUOT]
    新しい fifo 用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステム上のディスクブロックのユーザの クォータが枯渇しました。

[EDQUOT]
    fifo を作成中のファイルシステム上のユーザの inode のクォータが 枯渇しました。

[EIO]
    ディレクトリエントリの作成中、あるいは inode を割り当て中に I/O (入出力) エラーが発生しました。

[EIO]
    ファイルシステムに読み書きしている間に I/O (入出力) エラーが発生しました。

[EFAULT]
    path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。

関連項目
chmod(2), mknod(2), stat(2), umask(2)

規格
mkfifo() システムコールは p1003.1-90 に適合しています。