CHDIR(2)

명칭
chdir, fchdir - 현재의 작업 디렉토리를 변경한다

프로그램 라이브러리
libc

서식
<unistd.h> int chdir(const char *path) int fchdir(int fd)

해설
path 인수는, 디렉토리의 패스명을 가리킵니다. chdir() 함수에 의해, 지정된 디렉토리가 현재의 작업 디렉토리, 즉 slash ‘/’ 그리고 개시하지 않는 패스명의 패스 검색의 개시점이 됩니다.

fchdir() 함수에 의해, fd 하지만 참조하는 디렉토리가 현재의 작업 디렉토리 (slash ‘/’ 그리고 개시하지 않는 패스명의 패스 검색의 개시점)이 됩니다.

디렉토리가 현재의 작업 디렉토리가 되기 위해서(때문에)는, 프로세스가 그 디렉토리에의 실행 (검색) 액세스 허가를 가지고 있을 필요가 있습니다.

반환값

에러
다음의 1 개 또는 복수가 진정한 경우, chdir() 의 처리는 실패해, 현재의 작업 디렉토리는 변경되지 않습니다.

[ENOTDIR]
    패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.

[ENAMETOOLONG]
    패스명의 원가요소가 255 캐릭터를 넘고 있는지, 또는 패스명 전체가 1023 캐릭터를 넘고 있습니다.

[ENOENT]
    지정된 디렉토리가 존재하지 않습니다.

[ELOOP]
    패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.

[EACCES]
    패스명의 원가요소의 어느쪽이든으로, 검색이 허가되고 있지 않습니다.

[EFAULT]
    path (은)는, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

[EIO]
    파일 시스템에 읽고 쓰기하고 있는 동안에 입출력 에러가 발생했습니다.

다음의 1 개 또는 복수가 진정한 경우, fchdir() 의 처리는 실패해, 현재의 작업 디렉토리는 변경되지 않습니다.

[EACCES]
    파일 기술자가 참조하는 디렉토리에서 검색이 허가되고 있지 않습니다.

[ENOTDIR]
    파일 기술자가 디렉토리를 참조하고 있지 않습니다.

[EBADF]
    인수 fd 하지만 유효한 파일 기술자가 아닙니다.

관련 항목
chroot(2)

표준
chdir() 함수는 p1003.1-90 에 준거하고 있습니다.

역사
chdir() 함수는 AT&T UNIX 그리고 등장했습니다. fchdir() 함수는 4.2BSD 그리고 등장했습니다.