chroot - change root directory
int chroot(const char *path);
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 `/'. In particular, the super-user can escape from a `chroot jail' by doing `mkdir foo; chroot foo; cd ..'.
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
Depending on the file system, other errors can be returned. The more general errors are listed below:
- The effective UID is not zero.
- path points outside your accessible address space.
- path is too long.
- The file does not exist.
- Insufficient kernel memory was available.
- A component of path is not a directory.
- Search permission is denied on a component of the path prefix.
- Too many symbolic links were encountered in resolving path.
- An I/O error occurred.
SVr4, SVID, 4.4BSD, X/OPEN. This function is not part of POSIX.1. SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions. X/OPEN does not document EIO, ENOMEM or EFAULT error conditions. This interface is marked as legacy by X/OPEN.