Unix-system-calls-prctl

提供:Dev Guides
移動先:案内検索

[top]#

[[File:]]

[[File:]]

|Web |This Site

  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

  Home     References     Discussion Forums     About TP  

prctl()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

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 __>で定義された値)、および最初の引数に応じて重要なパラメータを指定して呼び出されます。 最初の引数は次のとおりです。

Tag

説明

*PR_SET_PDEATHSIG*

(Linux 2.1.57以降)現在のプロセスの親プロセス停止シグナルを_arg2_(1..maxsigの範囲のシグナル値、または0からクリア)に設定します。 これは、親が死んだときに現在のプロセスが受け取るシグナルです。 この値は、 fork ()でクリアされます。

*PR_GET_PDEATHSIG*

(Linux 2.3.15以降)親プロセスの終了シグナルの現在の値を(int *)_arg2_に読み込みます。

*PR_SET_DUMPABLE*

(Linux 2.4以降)コアダンプを生成することがデフォルトの動作であるシグナルの配信時に、このプロセスのコアダンプを生成するかどうかを決定するフラグの状態を設定します。 (通常、このフラグはデフォルトでプロセスに設定されますが、set-user-IDまたはset-group-IDプログラムが実行されると、プロセスUIDとGIDを操作するさまざまなシステムコールによってクリアされます)。 2.6.12以前のカーネルでは、arg2_は0(プロセスはダンプ可能ではない)または1(プロセスはダンプ可能)でなければなりません。 カーネル2.6.13以降、値2も許可されています。これにより、通常はダンプされないバイナリは、rootのみが読み取り可能にダンプされます。 ( proc (5)の/proc/sys/fs/suid_dumpable_の説明も参照してください。)

*PR_GET_DUMPABLE*

(Linux 2.4以降)(関数の結果として)呼び出し元プロセスのダンプ可能フラグの現在の状態を返します。

*PR_SET_KEEPCAPS*

プロセスの「機能を保持」フラグの状態を設定します。これは、プロセスの実際のUID、有効なUID、保存されたset-user-少なくとも1つのIDの値が以前に0だった場合、IDはすべて非ゼロになります。 (デフォルトでは、これらの資格情報セットはクリアされます)。 _arg2_は、0(機能がクリアされている)または1(機能が保持されている)のいずれかでなければなりません。

*PR_GET_KEEPCAPS*

(関数の結果として)呼び出し元プロセスの「機能保持」フラグの現在の状態を返します。

返り値

*PR_GET_DUMPABLE* および *PR_GET_KEEPCAPS* は、成功すると0または1を返します。 他のすべての_option_値は、成功すると0を返します。 エラーの場合、-1が返され、_errno_が適切に設定されます。

エラー

Tag Description
*EINVAL * The value of option is not recognized, or it is* PR_SET_PDEATHSIG* and arg2 is not zero or a signal number.

準拠

この呼び出しはLinux固有です。 IRIXには、プロトタイプを使用した prctl ()システムコール(Linux 2.1.44でMIPSアーキテクチャのirix_prctlとしても導入されています)があります。

*ptrdiff_t prctl(int* __option __ **、int * *__arg2 __* *、int * *__arg3 __* *); **

ユーザーごとのプロセスの最大数の取得、呼び出しプロセスが使用できるプロセッサの最大数の取得、指定されたプロセスが現在ブロックされているかどうかの確認、最大スタックサイズの取得または設定などのオプション

可用性

*prctl* ()システムコールはLinux 2.1.57で導入されました。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

  
Advertisements