.\" Copyright (C) 2011, Eric Biederman .\" Licensed under the GPLv2 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SETNS 2 2012\-05\-04 Linux "Linux Programmer's Manual" .SH 名前 setns \- スレッドに名前空間を関連付けしなおす .SH 書式 .nf \fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */ \fB#include \fP .sp \fBint setns(int \fP\fIfd\fP\fB, int \fP\fInstype\fP\fB);\fP .fi .SH 説明 名前空間を参照するファイルディスクリプタを指定すると、 呼び出したスレッドにその名前空間を関連付けしなおす。 \fIfd\fP 引き数は、 \fI/proc/[pid]/ns/\fP ディレクトリ内の名前空間エントリ のいずれかを参照するファイルディスクリプタである。 \fI/proc/[pid]/ns/\fP の詳細は \fBproc\fP(5) を参照。 \fInstype\fP 引き数で指定された制限の範囲内で、 呼び出したスレッドに \fIfd\fP に対応する名前空間を関連付けしなおす。 \fInstype\fP 引き数は、呼び出したスレッドがどのタイプの名前空間を 関連付けしなおすことができるかを指定する。 この引き数には以下のいずれかの値を指定できる。 .TP \fB0\fP どのタイプの名前空間も関連付けることができる。 .TP \fBCLONE_NEWIPC\fP \fIfd\fP は IPC 名前空間を参照していなければならない。 .TP \fBCLONE_NEWNET\fP \fIfd\fP はネットワーク名前空間を参照していなければならない。 .TP \fBCLONE_NEWUTS\fP \fIfd\fP は UTS 名前空間を参照していなければならない。 .PP 呼び出し側が \fIfd\fP がどのタイプの名前空間を参照しているかを知っている (もしくは気にする必要がない) 場合には、 \fInstype\fP に 0 を指定すれば十分 である。呼び出し側が \fIfd\fP がどのタイプの名前空間を参照しているかを 知っておらず、かつ、特定のタイプの名前空間であることを保証したい場合、 \fInstype\fP に 0 以外の値を指定するとよい。 (ファイルディスクリプタが別の プロセスによりオープンされ、例えば、UNIX ドメインソケット経由で呼び出し 側に渡された場合などでは、呼び出し側が \fIfd\fP がどのタイプの名前空間を 参照しているかを知らない可能性がある。) .SH 返り値 成功すると \fIsetns\fP() は 0 を返す。 失敗すると、 \-1 が返され、 \fIerrno\fP にエラーを示す値が設定される。 .SH エラー .TP \fBEBADF\fP \fIfd\fP が有効なファイルディスクリプタではない。 .TP \fBEINVAL\fP \fIfd\fP が \fInstype\fP で指定されたタイプと一致しない名前空間を参照している。 または、指定された名前空間をそのスレッドに関連付けし直す際に問題 があった。 .TP \fBENOMEM\fP 指定された名前空間に変更するのに必要なメモリが割り当てられない。 .TP \fBEPERM\fP 呼び出したスレッドがこの操作を行うのに必要な特権 (\fBCAP_SYS_ADMIN\fP) を 持っていなかった。 .SH バージョン \fBsetns\fP() システムコールはカーネル 3.0 で Linux に初めて登場した。 ライブラリによるサポートは glibc バージョン 2.14 を追加された。 .SH 準拠 \fBsetns\fP() システムコールは Linux 固有である。 .SH 注意 新しいスレッドが \fBclone\fP(2) を使って作成された際に共有できる全ての属性を、 \fBsetns\fP() を使って変更できるわけではない。 .SH バグ 現在のところ、 PID 名前空間とマウント名前空間はサポートされていない (\fBclone\fP(2) の \fBCLONE_NEWPID\fP と \fBCLONE_NEWNS\fP の説明を参照)。 .SH 関連項目 \fBclone\fP(2), \fBfork\fP(2), \fBvfork\fP(2), \fBproc\fP(5), \fBunix\fP(7) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。