Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
Docbook 원문

chdir(2)

1장. chdir(2)

차례
1.1. 사용법
1.2. 설명
1.3. 반환값
1.4. 에러
1.5. 예제
1.6. 참고문헌

작업 디렉토리를 바꾼다.


1.1. 사용법

#include <unsitd.h>

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


1.2. 설명

chdir()은 현재 디렉토리를 path가 지정된 곳으로 바뀐다.

fchdir()은 열려진 파일 기술자가 인자로 주어진다는 것을 제외 하고는 chdir()과 동일하다.


1.3. 반환값

성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno 값을 설정한다.


1.4. 에러

EFAULT

path가 접근할 수 없는 메모리 영역을 가리키고 있다.

ENAMETOOLONG

path가 너무 길다.

ENOENT

파일이 존재하지 않는다.

ENOMEM

커널 메모리가 충분하지 않다.

ENOTDIR

path가 디렉토리가 아니다.

EACCESS

허가가 거부 되었다.

ELOOP

path를 찾아갈 때 너무 많은 심볼릭 링크가 존재한다.

EIO

I/O에러의 발생


1.5. 예제

#include <unistd.h>
#include <string.h>

int main(int argc, char **argv)
{
    char buf[255];
    if (chdir(argv[1]))
    {
        perror("error");
        exit(1);
    }
    getcwd(buf, 255);
    printf("현재 작업 디렉토리 : %s\n", buf);
    exit(0);
}
		


1.6. 참고문헌

  1. getcwd(2)

  2. chroot(2)