Man page - mkfifoat(3)

Packages contains this manual

Available languages:

en fr pl ja ru ro

Manual

MKFIFO

名 前
書 式
説 明
mkfifoat()
返 り 値
エ ラ ー
バ ー ジ ョ ン
属 性
準 拠
関 連 項 目
こ の 文 書 に つ い て

名 前

mkfifo, mkfifoat - FIFOス ペ シ ャ ル フ ァ イ ル (名 前 付 き パ イ プ )を 作 成 す る

書 式

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

int mkfifo(const char * pathname , mode_t mode );

#include <fcntl.h> /* AT_* 定 数 の 定 義 */
#include <sys/stat.h>

int mkfifoat(int dirfd , const char * pathname , mode_t mode );

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

mkfifoat ():

glibc 2.10 以 降 :

_POSIX_C_SOURCE >= 200809L

glibc 2.10 よ り 前 :

_ATFILE_SOURCE

説 明

mkfifo () は 名 前 pathname を 持 つ FIFOス ペ シ ャ ル フ ァ イ ル を 作 成 す る 。 FIFOの 許 可 モ ー ド は mode で 指 定 さ れ 、 プ ロ セ ス の umask に よ っ て 通 常 の 方 式 で 変 更 を 受 け る : 作 成 さ れ た フ ァ イ ル の 許 可 モ ー ド は ( mode & ~umask) と な る 。

FIFOス ペ シ ャ ル フ ァ イ ル は パ イ プ に 似 て い る が 、 作 成 の さ れ 方 の み が 異 な っ て い る 。 FIFOス ペ シ ャ ル フ ァ イ ル は 名 前 の な い 通 信 路 で は な く 、 mkfifo () の 呼 び 出 し に よ り フ ァ イ ル シ ス テ ム の 中 に 加 え ら れ る 。

ひ と た び こ の よ う に し て FIFOス ペ シ ャ ル フ ァ イ ル が 作 成 さ れ る と 、 通 常 の フ ァ イ ル と 同 じ よ う に 、 ど の プ ロ セ ス か ら で も 読 み 出 し 、 書 き 込 み 用 に こ れ を オ ー プ ン す る こ と が で き る 。 た だ し 、 こ れ に 対 す る 全 て の 入 出 力 操 作 に 先 立 っ て そ の 両 端 が オ ー プ ン さ れ て い る 必 要 が あ る 。 FIFOを 読 み 出 し 用 に オ ー プ ン す る と 、 通 常 他 の プ ロ セ ス に よ っ て 同 じ FIFOが 書 き 込 み 用 に オ ー プ ン さ れ る ま で ブ ロ ッ ク さ れ 、 逆 の 場 合 も 同 様 で あ る 。 FIFOス ペ シ ャ ル フ ァ イ ル を ブ ロ ッ ク せ ず に 扱 う 方 法 に つ い て は fifo (7) を 参 照 の こ と 。

mkfifoat()

mkfifoat () シ ス テ ム コ ー ル は mkfifo () と 全 く 同 様 に 動 作 す る が 、 以 下 で 説 明 す る 点 が 異 な る 。

pathname で 指 定 さ れ た パ ス 名 が 相 対 パ ス の 場 合 、 こ の パ ス 名 は フ ァ イ ル デ ィ ス ク リ プ タ ー dirfd が 参 照 す る デ ィ レ ク ト リ に 対 す る 相 対 パ ス と 解 釈 さ れ る ( mkfifo () に 相 対 パ ス 名 を 渡 し た 場 合 の よ う に 、 呼 び 出 し た プ ロ セ ス の カ レ ン ト ワ ー キ ン グ デ ィ レ ク ト リ に 対 す る 相 対 パ ス で は な い )。

pathname で 指 定 さ れ た パ ス 名 が 相 対 パ ス で 、 dirfd が 特 別 な 値 AT_FDCWD の 場 合 、 ( mkfifo () と 同 様 に ) pathname は 呼 び 出 し た プ ロ セ ス の カ レ ン ト ワ ー キ ン グ デ ィ レ ク ト リ に 対 す る 相 対 パ ス と 解 釈 さ れ る 。

pathname で 指 定 さ れ た パ ス 名 が 絶 対 パ ス の 場 合 、 dirfd は 無 視 さ れ る 。

返 り 値

成 功 し た 場 合 mkfifo () と mkfifoat () は 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 が 読 み 取 り 専 用 の フ ァ イ ル シ ス テ ム を 指 し て い る 。

mkfifoat () で は 以 下 の エ ラ ー も 発 生 す る 。

EBADF

dirfd が 有 効 な フ ァ イ ル デ ィ ス ク リ プ タ ー で な い 。

ENOTDIR

pathname が 相 対 パ ス で 、 dirfd が デ ィ レ ク ト リ 以 外 の フ ァ イ ル を 参 照 し て い る フ ァ イ ル デ ィ ス ク リ プ タ ー で あ る 。

バ ー ジ ョ ン

mkfifoat () は glibc 2.4 で 追 加 さ れ た 。 こ れ は 、 カ ー ネ ル 2.6.16 以 降 の Linux で 利 用 で き る mknodat (2) を 使 っ て 実 装 さ れ て い る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-46215-1.png

準 拠

mkfifo (): POSIX.1-2001, POSIX.1-2008.

mkfifoat (): POSIX.1-2008.

関 連 項 目

mkfifo (1), close (2), open (2), read (2), stat (2), umask (2), write (2), fifo (7)

こ の 文 書 に つ い て

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