33 lines
959 B
Markdown
33 lines
959 B
Markdown
## Name
|
|
|
|
chroot, chroot_with_mount_flags - change filesystem root
|
|
|
|
## Synopsis
|
|
|
|
```**c++
|
|
#include <unistd.h>
|
|
|
|
int chroot(const char* path);
|
|
int chroot_with_mount_flags(const char* path, int mount_flags);
|
|
```
|
|
|
|
## Description
|
|
|
|
`chroot()` changes the filesystem root of the current process to a new directory specified by `path`.
|
|
|
|
`chroot_with_mount_flags()` additionally applies the given `mount_flags` to the new root directory
|
|
of the current process as if it was a separate mount. All the same flags as for [`mount`(2)](mount.md)
|
|
are accepted, except `MS_BIND` doesn't make sense for chroots. Additionally, the value -1 is accepted,
|
|
and makes `chroot_with_mount_flags()` behave like regular `chroot()`.
|
|
|
|
## Errors
|
|
|
|
* `EPERM`: The current process does not have superuser privileges.
|
|
* `EFAULT`: `path` is not in readable memory.
|
|
|
|
All of the usual path resolution errors may also occur.
|
|
|
|
## See also
|
|
|
|
* [`chroot`(8)](../man8/chroot.md)
|
|
* [`mount`(2)](mount.md)
|