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

廣告


  

廣告



廣告