Man page - mkdirat(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

MKDIR

名 前
書 式
説 明
mkdirat()
返 り 値
エ ラ ー
バ ー ジ ョ ン
準 拠
注 意
glibc で の 注 意
関 連 項 目
こ の 文 書 に つ い て

名 前

mkdir, mkdirat - デ ィ レ ク ト リ を 作 成 す る

書 式

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

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

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

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

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

mkdirat ():

glibc 2.10 以 降 :

_POSIX_C_SOURCE >= 200809L

glibc 2.10 よ り 前 :

_ATFILE_SOURCE

説 明

mkdir () は pathname で 示 さ れ る 名 前 の デ ィ レ ク ト リ を 作 成 し よ う と す る 。

The argument mode specifies the mode for the new directory (see inode (7)). It is modified by the process’s umask in the usual way: in the absence of a default ACL, the mode of the created directory is ( mode & ~ umask & 0777). Whether other mode bits are honored for the created directory depends on the operating system. For Linux, see NOTES below.

新 し く 作 成 さ れ た デ ィ レ ク ト リ の 所 有 者 は プ ロ セ ス の 実 効 ユ ー ザ ー ID に 設 定 さ れ る 。 新 た に 作 成 さ れ た デ ィ レ ク ト リ が 含 ま れ る 親 デ ィ レ ク ト リ に set group ID ビ ッ ト が セ ッ ト さ れ て い た り 、 フ ァ イ ル シ ス テ ム が BSD の グ ル ー プ セ マ ン テ ィ ク ス ( mount -o bsdgroups あ る い は 、 同 じ 意 味 の mount -o grpid ) に 従 っ て マ ウ ン ト さ れ て い る 場 合 に は 、 新 た に 作 成 さ れ た デ ィ レ ク ト リ の グ ル ー プ 所 有 権 は 親 デ ィ レ ク ト リ の も の が 継 承 さ れ る (親 デ ィ レ ク ト リ と 同 じ に な る )。 そ れ 以 外 の 場 合 は 、 グ ル ー プ 所 有 権 は プ ロ セ ス の 実 効 グ ル ー プ ID と な る 。

も し 親 デ ィ レ ク ト リ に set group ID ビ ッ ト が セ ッ ト さ れ て い れ ば 新 し く 作 成 さ れ る デ ィ レ ク ト リ に も set group ID ビ ッ ト が セ ッ ト さ れ る 。

mkdirat()

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

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

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

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

mkdirat () の 必 要 性 に つ い て の 説 明 に つ い て は openat (2) を 参 照 。

返 り 値

mkdir () と mkdirat () は 成 功 し た 場 合 0 を 、 失 敗 し た 場 合 -1 を 返 す (ま た 、 errno が エ ラ ー の 内 容 に し た が っ て 適 切 に 設 定 さ れ る )。

エ ラ ー

EACCES

プ ロ セ ス が 親 デ ィ レ ク ト リ へ の 書 き 込 み 許 可 を 持 た な い 、 も し く は pathname 中 の デ ィ レ ク ト リ の ど れ か に 検 索 許 可 属 性 が 無 い ( path_resolution (7) も 参 照 )。

EDQUOT

デ ィ ス ク ブ ロ ッ ク か inode が そ の フ ァ イ ル シ ス テ ム の ユ ー ザ ー ク ォ ー タ に 達 し て い た 。

EEXIST

pathname が 既 に 存 在 し て い る (た だ し そ れ が デ ィ レ ク ト リ で あ る と は 限 ら な い )。 pathname が シ ン ボ リ ッ ク リ ン ク の 場 合 も (そ の 指 定 先 が 存 在 す る か ど う か に 関 ら ず )エ ラ ー に な る 。

EFAULT

pathname が ア ク セ ス 可 能 な ア ド レ ス 空 間 の 外 を 指 し て い る 。

EINVAL

The final component ("basename") of the new directory’s pathname is invalid (e.g., it contains characters not permitted by the underlying filesystem).

ELOOP

pathname を 解 決 す る と き に 、 解 決 す べ き シ ン ボ リ ッ ク リ ン ク が 多 す ぎ た 。

EMLINK

親 デ ィ レ ク ト リ へ の リ ン ク 数 が LINK_MAX を 超 え て し ま う 。

ENAMETOOLONG

pathname が 長 す ぎ る 。

ENOENT

pathname の 構 成 要 素 の デ ィ レ ク ト リ の い ず れ か が 存 在 し な い か 、 ま た は リ ン ク 先 が 存 在 し な い シ ン ボ リ ッ ク リ ン ク で あ る 。

ENOMEM

カ ー ネ ル に 十 分 な メ モ リ ー が な い 。

ENOSPC

pathname を 含 む デ バ イ ス に 新 た に デ ィ レ ク ト リ を 作 成 す る 空 き が 無 い 。

ENOSPC

も し く は ユ ー ザ ー の デ ィ ス ク quota が 使 い 切 ら れ て い る た め 、 新 た に デ ィ レ ク ト リ を 作 成 す る こ と が で き な い 。

ENOTDIR

pathname の デ ィ レ ク ト リ 部 分 が 実 際 に は デ ィ レ ク ト リ で な い 。

EPERM

pathname を 含 む フ ァ イ ル シ ス テ ム が デ ィ レ ク ト リ の 作 成 を サ ポ ー ト し て い な い 。

EROFS

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

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

EBADF

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

ENOTDIR

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

バ ー ジ ョ ン

mkdirat () は カ ー ネ ル 2.6.16 で Linux に 追 加 さ れ た 。 ラ イ ブ ラ リ に よ る サ ポ ー ト は バ ー ジ ョ ン 2.4 で glibc に 追 加 さ れ た 。

準 拠

mkdir (): SVr4, BSD, POSIX.1-2001, POSIX.1-2008.

mkdirat (): POSIX.1-2008.

注 意

Under Linux, apart from the permission bits, the S_ISVTX mode bit is also honored.

NFS を 実 現 し て い る プ ロ ト コ ル に は 多 く の 不 備 が 存 在 し 、 そ れ ら 中 に は mkdir () に 影 響 を 与 え る も の も あ る 。

glibc で の 注 意

mkdirat () が 利 用 で き な い 古 い カ ー ネ ル で は 、 glibc ラ ッ パ ー 関 数 は mkdir () を 使 用 す る モ ー ド に フ ォ ー ル バ ッ ク す る 。 pathname が 相 対 パ ス の 場 合 、 glibc は dirfd 引 数 に 対 応 す る /proc/self/fd の シ ン ボ リ ッ ク リ ン ク に 基 づ い て パ ス 名 を 構 成 す る 。

関 連 項 目

mkdir (1), chmod (2), chown (2), mknod (2), mount (2), rmdir (2), stat (2), umask (2), unlink (2), acl (5), path_resolution (7)

こ の 文 書 に つ い て

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