CHDIR(2)

名称
chdir, fchdir - 現在の作業ディレクトリを変更する

ライブラリ
libc

書式
<unistd.h> int chdir(const char *path) int fchdir(int fd)

解説
path 引数は、ディレクトリのパス名を指します。 chdir() 関数によって、指定されたディレクトリが 現在の作業ディレクトリ、すなわちスラッシュ ‘/’ で開始しないパス名のパス検索の開始点になります。

fchdir() 関数によって、 fd が参照するディレクトリが 現在の作業ディレクトリ (スラッシュ ‘/’ で開始しないパス名のパス検索の開始点) になります。

ディレクトリが現在の作業ディレクトリになるためには、 プロセスがそのディレクトリへの 実行 (検索) アクセス許可を持っている必要があります。

戻り値

エラー
次の 1 つまたは複数が真の場合、 chdir() の処理は失敗し、現在の作業ディレクトリは変更されません。

[ENOTDIR]
    パスの構成要素中にディレクトリ以外のものが含まれています。

[ENAMETOOLONG]
    パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。

[ENOENT]
    指定されたディレクトリが存在しません。

[ELOOP]
    パス名を変換するときに検出されたシンボリックリンクが多すぎます。

[EACCES]
    パス名の構成要素のいずれかで、検索が許可されていません。

[EFAULT]
    path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。

[EIO]
    ファイルシステムに読み書きしている間に入出力エラーが発生しました。

次の 1 つまたは複数が真の場合、 fchdir() の処理は失敗し、現在の作業ディレクトリは変更されません。

[EACCES]
    ファイル記述子が参照するディレクトリで検索が許可されていません。

[ENOTDIR]
    ファイル記述子がディレクトリを参照していません。

[EBADF]
    引数 fd が有効なファイル記述子ではありません。

関連項目
chroot(2)

規格
chdir() 関数は p1003.1-90 に準拠しています。

歴史
chdir() 関数は AT&T UNIX で登場しました。 fchdir() 関数は 4.2BSD で登場しました。