首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mkfifo文件权限未正确执行

mkfifo文件权限未正确执行
EN

Stack Overflow用户
提问于 2009-08-27 18:57:53
回答 2查看 16.5K关注 0票数 9

我的C程序中的以下行应该提供All/Group/Owner读写权限

代码语言:javascript
复制
mkfifo("/tmp/dumbPipe", 0666)

但是一旦我执行了代码并检查了写入位的权限设置,我就得到了

代码语言:javascript
复制
prw-r--r-- 

所有者是相同的,因为我在tmp目录中创建管道,这会有问题吗?当我从cmd行运行chmod 666时,所有权限都被正确设置。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-27 19:01:34

这是一篇没有评论的文章,只是引用了一些手册。Brievity等。

引用man 3 mkfifo的话:

它由进程的umask以通常的方式修改:创建的文件的权限是(

& ~umask)。

引用自man 2 umask

进程umask的典型默认值是S_IWGRP | S_IWOTH (八进制022)。通常情况下,open(2)的模式参数指定为:

S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (八进制0666)创建新文件时,结果文件的权限为: S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH (因为0666 & ~022 = 0644;即rw-r--r--)。

票数 11
EN

Stack Overflow用户

发布于 2014-07-18 03:38:13

Salam,我知道为时已晚,但对于其他用户,我选择写这篇评论,即使你精确地将0666作为权限,你也应该知道还有另一个因素,称为“进程的文件模式创建",所以问题是:

如何更改当前进程文件的创建模式?

答:在程序开始时使用umask(权限)-并将权限设为0000

http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

这应该会有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1343144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档