int open(char *name,int how) 第二个参数,O_RDONLY 、 O_WRONLY 、 O_RDWR 、 O_CREAT
o_rdonlyread only 只读o_wronlywrite only 只写
o_rdwrread write 可读可写
o_trunc若文件存在则长度被截为0(属性不变)
mode标志不是5位哦,0666代表打开权限,linux下分别有user,group,other等几种权限
user有S_IRUSR,S_IWUSR,S_IXUSR,分别代表read,write,exute(读写执行)的权限用二进制表示成100,010,001所以6就等于100+010,可以表示成S_IRUSR|S_IWUSR,以此类推
GRP有S_IRGRP,S_IWGRP,S_IXGRP
other有S_IROTH,S_IWOTH,S_IXOTH
当然linux还有设置权限位可以设置为
S_ISUSR或者S_ISOTH
所以呢0666
=
S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH
我一般是这么写的,要包上头文件
sys/stat.h
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)