umask 函式 setsid 函式

2021-07-27 14:10:37 字數 935 閱讀 1624

umask()函式:此函式的主要作用是在建立檔案時設定或者遮蔽掉檔案的一些許可權。一般與open()函式配合使用。open函式原型:

#include

#include

#include

int open( const char * pathname, int flags);

int open( const char * pathname,int flags, mode_t mode);

當建立乙個檔案並且要明確指定此檔案的許可權時,應該使用第二個open()函式,明確指定mode引數,所建立的檔案最後的許可權是:mode&(~mask)。預設的mask值是:022

例:#include

#include

#include

int main()

則生成的test.txt檔案的許可權是:666&(~026)結果是:-rw-r-----。如果沒有umask(0026);這條語句,則生成的test.txt檔案的許可權是:666&(~022)結果是:-rw-r--r--。注:open函式的mode引數只有在建立檔案時才有效。

setsid( )說明:程序從它的雙親程序獲得它的對話過程和程序組識別號。setsid()就是將程序和它當前的對話過程和程序組分離開,並且把它設定成乙個新的對話過程的領頭程序。

pid_t pid = fork();

if (pid == 0) else

會話session是乙個或多個程序組的集合。程序呼叫setsid函式建立乙個新會話。如果呼叫此函式的程序不是乙個程序組的組長,則此函式就會建立乙個新會話,該程序變成會話的首程序,然後該程序成為乙個新程序組的組長程序,該程序沒有控制終端。因為會話首程序是具有唯一程序id的單個程序,所以可以將會話首程序的程序id視為會話id。

sys.c中的建立乙個會話的系統呼叫

int sys_setsid(void)

參考原文:

umask函式的用處

include sys types.h include sys stat.h mode t umask mode t cmask umask函式為程序設定檔案方式建立遮蔽字。unix中檔案最大訪問許可權是0777,即 rwxrwxrwx.如果講umask函式設定為0111,那麼預設建立檔案的許可權就...

c語言之 umask 函式

此函式的主要作用是在建立檔案時設定或者遮蔽掉檔案的一些許可權。一般與open 函式配合使用。umask 設定建立新檔案時的許可權遮罩 相關函式 creat,open 表頭檔案 sys types.h sys stat.h 定義函式 mode t umask mode t mask 函式說明 umas...

檔案和目錄之umask函式

本篇博文內容摘自 unix環境高階程式設計 第二版 僅作個人學習記錄所用。關於本書可參考 umask函式為程序設定檔案模式建立遮蔽字,並返回以前的值。這是少數幾個沒有出錯返回函式中的乙個。include mode t umask mode t cmask 返回值 以前的檔案模式建立遮蔽字 其中,引數...