CHROOT(2)

이름
chroot - 루트 디렉토리를 바꾼다.

사용법
#include <unistd.h>

int chroot(const char *path);

설명
chroot는 path가 지정한 곳으로 루트 디렉토리를 바꾼다. 이 디렉토리는 /으로 시작하는 경로 이름이 사용된다. 루트 디렉토리는 현재 프로세스의 모든 자식 프로세스에게 상속된다. 슈퍼유저만이 루트 디렉토리를 바꿀 수 있다. 이 시스템 콜은 현재 작업 디렉토리는 바꾸지 않는다. 그래서 `.'는 `/'으로 지정된 루트 트리 밖의 위치가 될 수도 있다.

반환값
성공시, 0이 리턴된다. 에러시, -1이 리턴되며, errno는 적당한 값으로 설정된다.

에러
파일 시스템에 의존적이며, 다른 에러가 리턴될 수 있다. 일반적인 에러 목록은 다음과 같다:

EPERM
    유효 UID가 0이 아니다.

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

ENAMETOOLONG
    path가 너무 길다.

ENOENT
    파일이 존재하지 않는다.

ENOMEM
    커널 메모리가 충분치않다.

ENOTDIR
    path가 디렉토리가 아니다.

EACCES
    허가가 거부되었다.

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

EIO I/O 에러가 발생했다.

호환
SVr4, SVID, 4.4BSD, X/OPEN. 이 함수는 POSIX.1의 일부가 아니다. SVr4 문서는 EINTR, ENOLINK 그리고 EMULTIHOP 에러 상태들을 추가적으로 기술한다. X/OPEN은 EIO, ENOMEM 또는 EFAULT 에러 상태를 문서화하지 않았다. 이 시스템 콜은 X/OPNE의 유산물로서 알려져있다.

관련 항목
chdir(2)

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