CHDIR

Section: Linux Programmer's Manual (2)
Updated: 2019-08-02
Index JM Home Page
 

名前

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

書式

#include <unistd.h>

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

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

fchdir():

_XOPEN_SOURCE >= 500
    || /* glibc 2.12 以降: */ _POSIX_C_SOURCE >= 200809L
    || /* glibc 2.19 以前: */ _BSD_SOURCE
 

説明

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
path で指定されたディレクトリが存在しない。
ENOMEM
カーネルに十分なメモリーがない。
ENOTDIR
path の構成要素がディレクトリではない。

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

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

準拠

POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD.  

注意

現在の作業ディレクトリは、相対パス名 ('/') で始まっていないパス名) を 解釈する際の開始点である。

fork(2) で作成された子プロセスは、親プロセスの現在の作業ディレクトリを 継承する。 execve(2) の前後で、現在の作業ディレクトリは変更されない。  

関連項目

chroot(2), getcwd(3), path_resolution(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

作業   chdir   fchdir   オープン   一般的   構成要素   許可   resolution   unistd   検査   マクロ   要件   macros   current   working   directory   成功   ファイルシステム   アドレス   空間   解決   遭遇   カーネル   メモリー   相対

Linux マニュアル 一覧

関連するコマンド・関数

fchdir.2   path_resolution.7   rmdir.2   mkdir.2   mkdirat.2   symlink.2
 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:54 GMT, October 11, 2026