linux下一程序 if(destfd=open("ilu.txt",O_RDWR|O_CREATE,0666))<0)//这里0666代表什么? { }

不是一般mode标志都5位的么?... 不是一般mode标志都5位的么? 展开
 我来答
judymac01
推荐于2018-03-08 · 超过15用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:46.1万
展开全部
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
BrotherGao
2013-05-10 · TA获得超过1536个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:407万
展开全部
楼主你好!
那你说的是open()函数中的mode_t mode吧?
mode参数只有在建立新文件时才会生效(flags中包含O_CREAT),表示新建文件的权限,但最终所建文件的权限会受到umask值所影响,因此该文件权限应该为(mode-umaks)。
666表示为rw-rw-rw-,即 110 110 110,对于用户、组、其他都对该文件有读写权,没有执行权!
可以通过终端命令行ls -l可以查看的!
希望我的回答对你有帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式