NAME

     chroot - change root directory


SYNOPSIS

     #include <unistd.h>

     int chroot(const char *path));


DESCRIPTION

     chroot changes the root directory to that specified in path.
     This directory will be used for path names beginning with /.
     The root directory is  inherited  by  all  children  of  the
     current process.

     Only the super-user may change the root directory.

     Note that this call does  not  change  the  current  working
     directory,  so  that  `.'  can be outside the tree rooted at
     `/'.


RETURN VALUE

     On success, zero is returned.  On error, -1 is returned, and
     errno is set appropriately.


ERRORS

     Depending on the file system, other errors can be  returned.
     The more general errors are listed below:


     EPERM   The effective UID is not zero.

     EFAULT  path points outside your accessible address space.

     ENAMETOOLONG
             path is too long.

     ENOENT  The file does not exist.

     ENOMEM  Insufficient kernel memory was available.

     ENOTDIR A component of path is not a directory.

     EACCES  Search permission is denied on a  component  of  the
             path prefix.

     ELOOP   Too many symbolic links were encountered in  resolv-
             ing path.

     EIO     An I/O error occurred.


CONFORMING TO

     SVr4, SVID, 4.4BSD, X/OPEN.  This function is  not  part  of
     POSIX.1.  SVr4 documents additional EINTR, ENOLINK and EMUL-
     TIHOP error  conditions.   X/OPEN  does  not  document  EIO,
     ENOMEM or EFAULT error conditions.  This interface is marked
     as legacy by X/OPEN.


SEE ALSO

     chdir(2)