Manpages

名 前

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/ に 書 か れ て い る 。