スポンサーリンク

CHDIR(2) FreeBSD システムコールマニュアル CHDIR(2)

名称

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

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <unistd.h>

int

chdir(const char *path);

int

fchdir(int fd);

解説

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

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

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

戻り値

成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno が設定されてエラーを示します。

エラー

次のうち 1 つ以上が真の場合、 chdir() システムコールの処理は失敗し、現在 の作業ディレクトリは変更されません:

       [ENOTDIR]

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

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

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

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

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

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

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

次のうち 1 つ以上が真の場合、 fchdir() システムコールの処理は失敗し、現在 の作業ディレクトリは変更されません:

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

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

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

関連項目

chroot(2)

規格

chdir() システムコールは ISO/IEC 9945-1:1990 (‘‘POSIX.1’’) に適合していま す。

歴史

chdir() システムコールは Version 7 AT&T UNIX で登場しました。 fchdir() シ ステムコールは 4.2BSD で登場しました。

FreeBSD 10.0 December 11, 1993 FreeBSD 10.0

スポンサーリンク