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
    허가가 거부되었다.

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)

역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 5월 1일