linux mkdir函式使用注意

2022-03-06 17:31:15 字數 2501 閱讀 2765

linux的mkdir 函式原型如下:

int mkdir(const char *pathname, mode_t mode);

今天使用linux的mkdir建立目錄。

函式說明:

mkdir()函式以mode方式建立乙個以引數pathname命名的目錄,mode定義新建立目錄的許可權。

返回值:

若目錄建立成功,則返回0;否則返回-1,並將錯誤記錄到全域性變數errno中。

mode方式: 

s_irwxu

00700許可權,代表該檔案所有者擁有讀,寫和執行操作的許可權

s_irusr(s_iread)

00400許可權,代表該檔案所有者擁有可讀的許可權

s_iwusr(s_iwrite)

00200許可權,代表該檔案所有者擁有可寫的許可權

s_ixusr(s_iexec)

00100許可權,代表該檔案所有者擁有執行的許可權

s_irwxg

00070許可權,代表該檔案使用者組擁有讀,寫和執行操作的許可權

s_irgrp

00040許可權,代表該檔案使用者組擁有可讀的許可權

s_iwgrp

00020許可權,代表該檔案使用者組擁有可寫的許可權

s_ixgrp

00010許可權,代表該檔案使用者組擁有執行的許可權

s_irwxo

00007許可權,代表其他使用者擁有讀,寫和執行操作的許可權

s_iroth

00004許可權,代表其他使用者擁有可讀的許可權

s_iwoth

00002許可權,代表其他使用者擁有可寫的許可權

s_ixoth

00001許可權,代表其他使用者擁有執行的許可權

今天使用該函式建立目錄,希望建立乙個775的許可權的目錄。但是建立一直失敗。

後來查閱資料後發現

需要先呼叫umask函式。

該函式原型:mode_t umask(mode_t mask);

函式說明

umask()會將系統umask值設成引數mask&0777後的值,然後將先前的umask值返回。在使用open()建立新檔案時,該引數mode並非真正建立檔案的許可權,而是(mode&~umask)的許可權值。例如,在建立檔案時指定檔案許可權為0666,通常umask值預設為022,則該檔案的真正許可權則為0666&~022=0644,也就是rw-r--r--返回值此呼叫不會有錯誤值返回。返回值為原先系統的umask值。

因此,建立775的目錄,需要先執行umask(0) 然後再呼叫mkdir函式。這樣就成功了。

linux的mkdir 函式原型如下:

int mkdir(const char *pathname, mode_t mode);

今天使用linux的mkdir建立目錄。

函式說明:

mkdir()函式以mode方式建立乙個以引數pathname命名的目錄,mode定義新建立目錄的許可權。

返回值:

若目錄建立成功,則返回0;否則返回-1,並將錯誤記錄到全域性變數errno中。

mode方式: 

s_irwxu

00700許可權,代表該檔案所有者擁有讀,寫和執行操作的許可權

s_irusr(s_iread)

00400許可權,代表該檔案所有者擁有可讀的許可權

s_iwusr(s_iwrite)

00200許可權,代表該檔案所有者擁有可寫的許可權

s_ixusr(s_iexec)

00100許可權,代表該檔案所有者擁有執行的許可權

s_irwxg

00070許可權,代表該檔案使用者組擁有讀,寫和執行操作的許可權

s_irgrp

00040許可權,代表該檔案使用者組擁有可讀的許可權

s_iwgrp

00020許可權,代表該檔案使用者組擁有可寫的許可權

s_ixgrp

00010許可權,代表該檔案使用者組擁有執行的許可權

s_irwxo

00007許可權,代表其他使用者擁有讀,寫和執行操作的許可權

s_iroth

00004許可權,代表其他使用者擁有可讀的許可權

s_iwoth

00002許可權,代表其他使用者擁有可寫的許可權

s_ixoth

00001許可權,代表其他使用者擁有執行的許可權

今天使用該函式建立目錄,希望建立乙個775的許可權的目錄。但是建立一直失敗。

後來查閱資料後發現

需要先呼叫umask函式。

該函式原型:mode_t umask(mode_t mask);

函式說明

umask()會將系統umask值設成引數mask&0777後的值,然後將先前的umask值返回。在使用open()建立新檔案時,該引數mode並非真正建立檔案的許可權,而是(mode&~umask)的許可權值。例如,在建立檔案時指定檔案許可權為0666,通常umask值預設為022,則該檔案的真正許可權則為0666&~022=0644,也就是rw-r--r--返回值此呼叫不會有錯誤值返回。返回值為原先系統的umask值。

因此,建立775的目錄,需要先執行umask(0) 然後再呼叫mkdir函式。這樣就成功了。

TransparentBlt函式的使用注意事項

今天客戶需要在軟體上需要新增乙個自己公司的logo,要求使用鏤空透明的形式展現,本來以為很簡單的工作沒想到在mfc下這麼複雜。logo為bmp格式,白色背景。以為和在按鈕上顯示控制項差不多,先導入bitmap資源,比如叫idb bitmap1,按鈕名比如叫idc button1,按鈕上貼圖的 cbi...

ios NSUserDefaults使用注意事項

nsuserdefaults適合儲存輕量級的資料,他不僅可以儲存基本資料型別,還可以儲存nsnumber integer float double nsstring,nsdate,nsarray,nsdictionary,bool型別。nsuserdefaults standarduserdefau...

HttpURLConnection使用注意事項

先上簡單 第一種 urlcon.setconnecttimeout 10000 必須設定,不設定網路異常情況會卡死在connect中 urlcon.setreadtimeout 10000 urlcon.connect in new bufferedinputstream url.openstrea...