名 前
chdir, fchdir − 作 業 デ ィ レ ク ト リ の 変 更
書 式
#include <unistd.h>
int
chdir(const char *path);
int fchdir(int fd);
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
fchdir():
_BSD_SOURCE ||
_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* glibc 2.12 以 降 : */
_POSIX_C_SOURCE >= 200809L
説 明
chdir() は 、 呼 び 出 し 元 プ ロ セ ス の 現 在 の 作 業 デ ィ レ ク ト リ (current working directory) を 、 path に 指 定 さ れ た デ ィ レ ク ト リ に 変 更 す る 。
fchdir() は 、 デ ィ レ ク ト リ が オ ー プ ン さ れ た フ ァ イ ル デ ィ ス ク リ プ タ ー と し て 指 定 さ れ る 以 外 は 、 chdir() と 同 じ で あ る 。
返 り 値
成 功 し た 場 合 は 0 が 返 さ れ る 。 エ ラ ー の 場 合 は −1 が 返 さ れ 、 errno が 適 切 に 設 定 さ れ る 。
エ ラ ー
フ ァ イ ル シ ス テ ム に よ っ て は 他 の エ ラ ー が 返 さ れ る 事 が あ る 。 chdir() で 一 般 的 な エ ラ ー を 以 下 に 挙 げ る :
EACCES |
path の 構 成 要 素 の い ず れ か に 検 索 許 可 (search permission) が な い (path_resolution(7) も 参 照 す る こ と )。 | ||
EFAULT |
path が ア ク セ ス で き る ア ド レ ス 空 間 外 を 指 し て い る 。 | ||
EIO |
I/O エ ラ ー が 発 生 し た 。 | ||
ELOOP |
path を 解 決 す る 際 に 遭 遇 し た シ ン ボ リ ッ ク リ ン ク が 多 過 ぎ る 。 |
ENAMETOOLONG
path が 長 過 ぎ る 。
ENOENT フ ァ イ ル が 存 在 し な い 。 |
||
ENOMEM カ ー ネ ル に 十 分 な メ モ リ ー が な い 。 |
ENOTDIR
path の 構 成 要 素 が デ ィ レ ク ト リ で は な い 。
fchdir() で 一 般 的 な エ ラ ー を 以 下 に 挙 げ る :
EACCES |
fd を デ ィ レ ク ト リ と し て オ ー プ ン す る た め の 検 索 許 可 が な い 。 | ||
EBADF |
fd が 適 切 な フ ァ イ ル デ ィ ス ク リ プ タ ー で な い 。 |
準 拠
SVr4, 4.4BSD, POSIX.1−2001.
注 意
現 在 の 作 業 デ ィ レ ク ト リ は 、 相 対 パ ス 名 ('/') で 始 ま っ て い な い パ ス 名 ) を 解 釈 す る 際 の 開 始 点 で あ る 。
fork(2) で 作 成 さ れ た 子 プ ロ セ ス は 、 親 プ ロ セ ス の 現 在 の 作 業 デ ィ レ ク ト リ を 継 承 す る 。 execve(2) の 前 後 で 、 現 在 の 作 業 デ ィ レ ク ト リ は 変 更 さ れ な い 。
関 連 項 目
chroot(2), getcwd(3), path_resolution(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。