PRCTL
Section: Linux Programmer's Manual (2)
Updated: 2007-07-27
Index
JM Home Page
roff page
名前
prctl - プロセスの操作を行なう
書式
#include <sys/prctl.h>
int prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5);
説明
prctl()
の動作は最初の引き数によって決定される (この値は
<linux/prctl.h> に定義されている)。
残りのパラメータは最初の引き数によって変化する。
一番目の引き数として以下のものを指定できる:
- PR_SET_PDEATHSIG
-
(Linux 2.1.57 以降)
親プロセス死亡シグナル (parent process death signal) を arg2 に設定する
(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。
呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が
シグナルとして通知される。この値は
fork(2)
時に解除される。
- PR_GET_PDEATHSIG
-
(Linux 2.3.15 以降)
親プロセス死亡シグナルの現在の値を読み取り
(int *) arg2 に格納する。
- PR_SET_DUMPABLE
-
(Linux 2.3.20 以降)
デフォルトの振る舞いではコアダンプを引き起こすようなシグナルを受信したときに、
コアダンプするかどうかを決定するフラグを設定する
(通常このフラグは、デフォルトではセットされているが、
set-user-ID あるいは set-group-ID プログラムが実行されたり、
さまざまなシステムコールによってプロセスの UID や GID が操作されたときに
クリアされる)。
2.6.12 以前のカーネルでは、
arg2
は 0 (プロセスはダンプ不可) あるいは 1 (プロセスはダンプ可能) の
どちらかでなければならない。
2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。
この値を指定すると、通常はダンプされないバイナリが root だけが
読み込み可能な形でダンプされた。
セキュリティ上の理由から、この機能は削除された
(proc(5)
の
/proc/sys/fs/suid_dumpable
の説明も参照)。
- PR_GET_DUMPABLE
-
(Linux 2.3.20 以降)
呼び出し元プロセスにおけるダンプ可能フラグの
現在の状態を (関数の返り値として) 返す。
- PR_SET_KEEPCAPS
-
(Linux 2.2.18 以降)
プロセスの「資格保持」フラグを設定する。
このフラグは、プロセスの実 UID、実効 UID、保存 set-user-ID のうち少なくとも
一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、
プロセスの実効・許可資格集合がクリアされるかどうかを決定する。
(デフォルトでは、これらの資格集合はクリアされる。)
arg2
は 0 (資格をクリアする) あるいは 1 (資格を保持する) の
どちらかでなければならない。
- PR_GET_KEEPCAPS
-
(Linux 2.2.18 以降)
呼び出し元プロセスにおける「資格保持」フラグの
現在の状態を (関数の返り値として) 返す。
- PR_SET_TIMING
-
(Linux 2.6.0-test4 以降)
(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、
正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。
arg2 に指定できる値は PR_TIMING_STATISTICAL か
PR_TIMING_TIMESTAMP である。
- PR_GET_TIMING
-
(Linux 2.6.0-test4 以降)
現在使用中のプロセスタイミングを決める方法を返す。
- PR_SET_NAME
-
(Linux 2.6.9 以降)
呼び出し元プロセスのプロセス名を arg2 で指定されたものに設定する。
- PR_GET_NAME
-
(Linux 2.6.11 以降)
呼び出し元プロセスのプロセス名を arg2 に格納する。
- PR_GET_ENDIAN
-
(Linux 2.6.18 以降、PowerPC のみ)
呼び出し元プロセスのエンディアン設定 (endian-ness) を返す。
- PR_SET_ENDIAN
-
(Linux 2.6.18 以降、PowerPC のみ)
呼び出し元プロセスのエンディアン設定 (endian-ness) を
arg2 で指定された値に設定する。
指定できる値は
PR_ENDIAN_BIG,
PR_ENDIAN_LITTLE,
PR_ENDIAN_PPC_LITTLE
(PowerPC 擬似リトルエンディアン)
のいずれか一つである。
- PR_SET_UNALIGN
-
(ia64 では Linux 2.3.48 以降;
parisc では Linux 2.6.15 以降;
PowerPC では Linux 2.6.18 以降;
これらのアーキテクチャのみ)
unaligned アクセス制御ビットを arg2 で指定された値に設定する。
指定できる値は PR_UNALIGN_NOPRINT (unaligned なユーザアクセスを黙って
修正する) か PR_UNALIGN_SIGBUS (unaligned なユーザアクセスがあった場合
SIGBUS
を生成する) である。
- PR_GET_UNALIGN
-
(バージョンとアーキテクチャの情報は
PR_SET_UNALIGN
参照)
unaligned アクセス制御ビットの値を arg2 に入れて返す。
- PR_SET_FPEMU
-
(Linux 2.4.18 および 2.5.9 以降、ia64 のみ)
浮動小数点エミュレーション (floating-point emulation) 制御ビットを
arg2 で指定された値に設定する。
指定できる値は PR_FPEMU_NOPRINT (浮動小数点命令アクセスを黙って
エミュレートする) か PR_FPEMU_SIGFPE (浮動小数点命令をエミュレートせず、
代わりに
SIGFPE
を送る) である。
- PR_GET_FPEMU
-
(Linux 2.4.18 および 2.5.9 以降、ia64 のみ)
浮動小数点エミュレーション制御ビットの値を arg2 に入れて返す。
- PR_SET_FPEXC
-
(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)
浮動小数点例外モード (floating-point exception mode) を
arg2 で指定された値に設定する。
指定できるのは以下の値である:
PR_FP_EXC_SW_ENABLE (FPEXC で浮動小数点例外を有効にする)、
PR_FP_EXC_DIV (0 除算)、
PR_FP_EXC_OVF (オーバーフロー)、
PR_FP_EXC_UND (アンダーフロー)、
PR_FP_EXC_RES (不正確な結果 (inexact result))、
PR_FP_EXC_INV (不正な命令 (invalid operation))、
PR_FP_EXC_DISABLED (浮動小数点例外を無効にする)、
PR_FP_EXC_NONRECOV (async non-recoverable exception mode)、
PR_FP_EXC_ASYNC (async recoverable exception mode)、
PR_FP_EXC_PRECISE (precise exception mode)。
- PR_GET_FPEXC
-
(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)
浮動小数点例外モードの値を arg2 に入れて返す。
返り値
option
が
PR_GET_DUMPABLE
または
PR_GET_KEEPCAPS
の場合は成功時に 0 または 1 を返す。
option
がその他の場合は成功時に 0 を返す。
エラーの場合は -1 が返され、
errno
に適切な値が設定される。
エラー
- EINVAL
-
option
の値が理解できない。または
option
が
PR_SET_PDEATHSIG
で
arg2
が 0 でもシグナル番号でもない。
バージョン
prctl()
システムコールは Linux 2.1.57 で導入された。
準拠
このコールは Linux 特有である。
IRIX には
prctl()
システム・コールがあるが (MIPS アーキテクチャにおいて
irix_prctl として Linux 2.1.44 で同様に導入された)、
そのプロトタイプは
ptrdiff_t prctl(int option, int arg2, int arg3);
である。ユーザー当りのプロセス最大数を取得するオプション、
プロセスの使用できる最大プロッサー数を取得するオプション、
現在特定のプロセスが停止(block)させられているかどうか調べるオプション、
スタックサイズの最大値の取得や設定を行なうオプションなどがある。
関連項目
signal(2),
core(5)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:56 GMT, November 19, 2007