CHROOT(2)

名前
chroot - ルート・ディレクトリを変更する

書式
#include <unistd.h>

int chroot(const char *path);

説明
chroot は、ルート・ディレクトリを path で指定されたディレクトリに変更する。 このディレクトリが、/ で始まるパス名として使われる。 このルート・ディレクトリは現在のプロセスの全ての子プロセスに受け継がれる。 スーパー・ユーザーだけがルート・ディレクトリを変更できる。 このコールは現在の作業ディレクトリ(working directory)を変更しないこ とに注意すること。それで '.' が '/' を根とするツリーの外になる場合が ある。

返り値
成功すると、0を返す。 失敗すると、-1を返し、 errno に適切な値を設定する。

エラー
ファイルシステムによっては他のエラーが返される事がある。 般的なエラーを以下に挙げる:

EPERM
    実効(effective)UIDがゼロでない。

EFAULT
    path が割り当てられたアドレス空間外を指している。

ENAMETOOLONG
    path が長過ぎる。

ENOENT
    ファイルが存在しない。

ENOMEM
    カーネルに十分なメモリがない。

ENOTDIR
    path の構成要素がディレクトリではない。

EACCES
    パス名の構成要素に検索許可(search permission)がない。

ELOOP
    path を解決する際に遭遇したシンボリック・リンクが多過ぎる。

EIO I/O エラーが発生した。

準拠
SVr4, SVID, 4.4BSD, X/OPEN. この関数は POSIX.1 にはない。 SVr4 には他に EINTR, ENOLINK, EMULTIHOP エラー状態についての記述がある。 X/OPEN には EIO, ENOMEM, EFAULT エラー状態の記述はない。 このインターフェースは X/OPEN を受け継いだものである。

関連項目
chdir(2)