linux下一程序 if(destfd=open("ilu.txt",O_RDWR|O_CREATE,0666))<0)//这里0666代表什么? { }
2个回答
展开全部
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
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
展开全部
楼主你好!
那你说的是open()函数中的mode_t mode吧?
mode参数只有在建立新文件时才会生效(flags中包含O_CREAT),表示新建文件的权限,但最终所建文件的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。
666表示为rw-rw-rw-,即 110 110 110,对于用户、组、其他都对该文件有读写权,没有执行权!
可以通过终端命令行ls -l可以查看的!
希望我的回答对你有帮助!
那你说的是open()函数中的mode_t mode吧?
mode参数只有在建立新文件时才会生效(flags中包含O_CREAT),表示新建文件的权限,但最终所建文件的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。
666表示为rw-rw-rw-,即 110 110 110,对于用户、组、其他都对该文件有读写权,没有执行权!
可以通过终端命令行ls -l可以查看的!
希望我的回答对你有帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询