スポンサーリンク

MKFIFO(2) FreeBSD システムコールマニュアル MKFIFO(2)

名称

mkfifo − fifo ファイルを作成する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <sys/types.h>
#include <sys/stat.h>

int

mkfifo(const char *path, mode_t mode);

解説

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

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

戻り値

関数 mkfifo() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

エラー

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() システムコールは ISO/IEC 9945-1:1990 (‘‘POSIX.1’’) に適合してい ます。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク