CHDIR(2)

名前
chdir, fchdir - 作業ディレクトリの変更

書式
#include <unistd.h>

int chdir(const char *path);
int fchdir(int fd);

説明
chdir は、カレントディレクトリを path に指定されたディレクトリに変更する。

fchdir はディレクトリの指定にオープンされたファイル・ディスクリプターを 指定すること以外、 chdir と同じである。

返り値
成功すると、0を返。失敗すると、-1を返し、 errno に適切な値をセットする。

エラー
ファイルシステムによっては他のエラーが返される事がある。 chdir で一般的なエラーを以下に挙げる:

EFAULT
    path は割り当てられたアドレス空間外を指している。

ENAMETOOLONG
    path が長過ぎる。

ENOENT
    そのディレクトリは存在しない。

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

ENOTDIR
    path の構成要素がディレクトリではない。

EACCES
    path の構成要素に検索許可(search permission)がない。

ELOOP
    path を解決する際に遭遇したシンボリック・リンクが多過ぎる。 EIO I/O エラーが発生した。

fchdir で一般的なエラーを以下に挙げる:

EBADF
    fd が適切なファイル・ディルクリターでない。 EACCES fd をディレクトリとしてオープンするための検索許可がない。

準拠
chdir は SVr4, SVID, POSIX, X/OPEN, 4.4BSD と互換性がある。 SVr4 には他に EINTR, ENOLINK, EMULTIHOP エラー状態についての記述がある。 しかし ENOMEM についてはない。POSIX.1 には ENOMEM, ELOOP エラーについて の記述はない。X/OPEN には EFAULT, ENOMEM, EIO エラー状態がない。 fchdir は SVr4, 4.4BSD, X/OPEN と互換性がある。SVr4 には他に EIO, EINTR, ENOLINK エラー状態についての記述がある。X/OPEN には他に EINTR, EIO エラー状態に ついての記述がある。

関連項目
getcwd(3), chroot(2)