UNIX umask函式,建立檔案模式遮蔽字

2021-07-10 08:39:49 字數 1251 閱讀 8355

umask函式用於為程序設定檔案模式建立遮蔽字,並返回之前的遮蔽字。

#include 

#include

mode_t umask(mode_t mask);

其中,引數mask由以下9個檔案訪問許可權位中的若干位「或「構成,這些位在/usr/include/x86_64-linux-gnu/sys/stat.h中定義。

表1. 檔案訪問許可權位

st_mode

含義s_irusr

使用者讀s_iwusr

使用者寫s_ixusr

使用者執s_irgrp

使用者組讀

s_iwgrp

使用者組寫

s_ixgrp

使用者組執行

s_iroth

其它組讀

s_iwoth

其它組寫

s_ixoth

其它組執行

例1 使用umask設定檔案模式建立遮蔽字

#include 

#include

#include

#include

#define mode (s_irusr | s_iwusr | s_irgrp | s_iwgrp)

int main()

執行上述**之前檢視當前檔案模式建立遮蔽字:

$ umask

0022

上述**執行結果如下:

$ ls -l file_*

-rw------- 1 rocky rocky 0 3月 8 09:56 file_new

-rw-rw---- 1 rocky rocky 0 3月 8 09:56 file_old

通過新建立檔案的訪問許可權位,可以看出在檔案模式建立遮蔽字中為1的位,檔案mode中相應的位被關閉。

檢視當前檔案模式建立遮蔽字是否改變:

$ umask

0022

通過umask命令在程式執行前後輸出資訊來看,檔案模式建立遮蔽字沒有改變,即更改程序的檔案模式建立遮蔽字並不影響父程序(通常為shell)的遮蔽字。

umask是shell的內建(which 命令無輸出)命令,用於輸出當前檔案模式建立遮蔽字:

$ which umask

開啟建立檔案Open Create 函式

linux中 open 用於開啟已經存在的檔案或者建立乙個新檔案 create 用於建立乙個新檔案。int open const char pathname,int flag int open const char pathname,int flag,mode t mode 注 pathname 不...

IO 建立檔案

public class demo03 catch exception e public static void test3 throws ioexception,interruptedexception 刪除檔案 boolean flag src.delete system.out.println...

建立檔案鏈結

硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號 inode index 在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以...