簡(jiǎn)單介紹C語(yǔ)言中的umask()函數(shù)和truncate()函數(shù)
C語(yǔ)言u(píng)mask()函數(shù):設(shè)置建立新文件時(shí)的權(quán)限遮罩
頭文件:
#include <sys/types.h> #include <sys/stat.h>
定義函數(shù):
mode_t umask(mode_t mask);
函數(shù)說(shuō)明:umask()會(huì)將系統(tǒng)umask值設(shè)成參數(shù)mask&0777后的值, 然后將先前的umask值返回。在使用open()建立新文件時(shí), 該參數(shù)mode 并非真正建立文件的權(quán)限, 而是(mode&~umask)的權(quán)限值。
例如:
在建立文件時(shí)指定文件權(quán)限為0666, 通常umask 值默認(rèn)為022, 則該文件的真正權(quán)限則為0666&~022=0644, 也就是rw-r--r--返回值此調(diào)用不會(huì)有錯(cuò)誤值返回. 返回值為原先系統(tǒng)的umask 值。
C語(yǔ)言truncate()函數(shù):改變文件大小
頭文件:
#include <unistd.h>
定義函數(shù):
int truncate(const char * path, off_t length);
函數(shù)說(shuō)明:truncate()會(huì)將參數(shù)path 指定的文件大小改為參數(shù)length 指定的大小. 如果原來(lái)的文件大小比參數(shù)length 大, 則超過(guò)的部分會(huì)被刪去.
返回值:執(zhí)行成功則返回0, 失敗返回-1, 錯(cuò)誤原因存于errno.
錯(cuò)誤代碼:
1、EACCESS 參數(shù)path 所指定的文件無(wú)法存取。
2、EROFS 欲寫(xiě)入的文件存在于只讀文件系統(tǒng)內(nèi)。
3、EFAULT 參數(shù)path 指針超出可存取內(nèi)存空間。
4、EINVAL 參數(shù)path 包含不合法字符。
5、ENAMETOOLONG 參數(shù)path 太長(zhǎng)。
6、ENOTDIR 參數(shù)path 路徑并非一目錄。
7、EISDIR 參數(shù)path 指向一目錄。
8、ETXTBUSY 參數(shù)path 所指的文件為共享程序, 而且正被執(zhí)行中。
9、ELOOP 參數(shù)path 有過(guò)多符號(hào)連接問(wèn)題。
10、EIO I/O 存取錯(cuò)誤。
相關(guān)文章
C++類(lèi)和對(duì)象實(shí)戰(zhàn)之Date類(lèi)的實(shí)現(xiàn)方法
C++ 標(biāo)準(zhǔn)庫(kù)沒(méi)有提供所謂的日期類(lèi)型,C++ 繼承了C語(yǔ)言用于日期和時(shí)間操作的結(jié)構(gòu)和函數(shù),這篇文章主要給大家介紹了C++類(lèi)和對(duì)象實(shí)戰(zhàn)之Date類(lèi)的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-12-12詳解dll動(dòng)態(tài)庫(kù)的開(kāi)發(fā)與調(diào)用及文件的讀寫(xiě)小程序
這篇文章主要介紹了詳解dll動(dòng)態(tài)庫(kù)的開(kāi)發(fā)與調(diào)用及文件的讀寫(xiě)小程序的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09Qt實(shí)現(xiàn)TCP網(wǎng)絡(luò)編程
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)TCP網(wǎng)絡(luò)編程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08Visual C++程序設(shè)計(jì)中Windows GDI貼圖閃爍的解決方法
這篇文章主要介紹了Visual C++程序設(shè)計(jì)中Windows GDI貼圖閃爍的解決方法,分析了GDI貼圖閃爍的常見(jiàn)原因及其具體解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01C++使用string的大數(shù)快速模冪運(yùn)算(6)
這篇文章主要為大家詳細(xì)介紹了C++使用string的大數(shù)快速模冪運(yùn)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目管理
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C++?vector的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了C++?vector的簡(jiǎn)單實(shí)現(xiàn),使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03C語(yǔ)言字符函數(shù)isalnum()和iscntrl()詳解
大家好,本篇文章主要講的是C語(yǔ)言字符函數(shù)isalnum()和iscntrl()詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02C語(yǔ)言如何計(jì)算一個(gè)整數(shù)的位數(shù)
這篇文章主要介紹了C語(yǔ)言如何計(jì)算一個(gè)整數(shù)的位數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11