prctl() - Unix,Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

prctl() - Unix,Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

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 起)将当前进程的父进程死亡信号设置为 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
 设置进程的“保留功能”标志的状态,该标志确定当对进程的用户 ID 进行更改时,进程的有效功能集和允许功能集是否被清除,使得进程的真实 UID、有效 UID 和保存的 set-user-ID 都变为非零,而之前至少有一个值为 0。(默认情况下,这些凭据集会被清除)。arg2 必须为 0(功能被清除)或 1(功能被保留)。
PR_GET_KEEPCAPS
 返回(作为函数结果)调用进程的“保留功能”标志的当前状态。

返回值

PR_GET_DUMPABLEPR_GET_KEEPCAPS 在成功时返回 0 或 1。所有其他 option 值在成功时返回 0。如果发生错误,则返回 -1,并且 errno 被相应地设置。

错误

标签描述
EINVAL option 的值不被识别,或者它是 PR_SET_PDEATHSIG 并且 arg2 不是零或信号编号。

符合标准

此调用是 Linux 特定的。IRIX 具有 prctl() 系统调用(也引入到 Linux 2.1.44 中,作为 MIPS 架构上的 irix_prctl),其原型为

ptrdiff_t prctl(int option, int arg2, int arg3);

以及用于获取每个用户的最大进程数、获取调用进程可以使用最大处理器数、找出指定进程当前是否被阻塞、获取或设置最大堆栈大小等的选项。

可用性

prctl() 系统调用是在 Linux 2.1.57 中引入的。

参见



previous next Printer Friendly

广告


  

广告



广告