久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

linux下的umask()函數(shù)

 changqiong0606 2012-06-05
此函數(shù)的主要作用是在創(chuàng)建文件設(shè)置或者屏蔽掉文件的一些權(quán)限,。一般與open()函數(shù)配合使用,。

umask(設(shè)置建立新文件時的權(quán)限遮罩)
相關(guān)函數(shù) creat,,open
表頭文件 #include<sys/types.h>
#include<sys/stat.h>
定義函數(shù): mode_t umask(mode_t mask);
函數(shù)說明: umask()會將系統(tǒng)umask值設(shè)成參數(shù)mask&0777后的值,,然后將先前的umask值返回。在使用open()建立新文件時,,該參數(shù) mode并非真正建立文件的權(quán)限,,而是(mode& ~umask)的權(quán)限值。例如,,在建立文件時指定文件權(quán)限為0666,,通常umask值默認(rèn)為 022,則該文件的真正權(quán)限則為0666&~022=0644,,也就是rw-r--r--返回值此調(diào)用不會有錯誤值返回,。

返回值為原先系統(tǒng)的umask值。


open函數(shù)原型:
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open( const char * pathname, int flags);
int open( const char * pathname,int flags, mode_t mode);
當(dāng)創(chuàng)建一個文件并且要明確指定此文件的權(quán)限時,,應(yīng)該使用第二個open()函數(shù),,明確指定mode參數(shù),所創(chuàng)建的文件最后的權(quán)限是:mode&(~mask),。默認(rèn)的mask值是:022
例:
#include <sys/types.h>
........
........
#include <fcntl.h>
int main()
{
    int fd;
    umask(0026);
    fd = open("test.txt",O_RDWR | O_CREAT,0666);
    if(fd < 0)
        perror("open");
    return 0;
}
則生成的test.txt文件的權(quán)限是:666&(~026)結(jié)果是:- rw- r-- ---.
如果沒有umask(0026);這條語句,,則生成的test.txt文件的權(quán)限是:666&(~022)結(jié)果是:- rw- r-- r--
注:open函數(shù)的mode參數(shù)只有在創(chuàng)建文件時才有效。
----------------------------------------------------------------------------------------------------------------------------------------
umask返回值實例:
#include<stdio.h>
#include<sys/stat.h>
#include <fcntl.h>
void main()
{
int fd;
int a,b;
a = umask(0);//當(dāng)前umask值設(shè)置為0,,先前umask值默認(rèn)為0022
printf("%o\n",a);//打印值為先前的umask值,,即22(八進(jìn)制)
b = umask(a);//設(shè)置當(dāng)前umask值為a=22,返回值為先前值0
printf("%o\n",b);//0
printf("%o\n",umask(0026));//當(dāng)前26,,返回值先前22
printf("%o\n",umask(0066));//當(dāng)前66,返回值先前26
fd = open("22test22.txt",O_RDWR | O_CREAT,0666);
if(fd < 0)
   perror("open");
}
--------------------
輸出為:
22
0
22
26
-------------------------------------------------------------------------------
ls -l  22test22.txt
-rw-------   1 root root     0 2012-06-05 16:28 22test22.txt
0666& (~0066)=0600,,即rw- --- ---

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多