一个简单的C代码,使用mkfifo创建有名管道给其他应用,代码如下:
...
mkfifo("/tmp/myfifo", 0666 );
fd = open("/tmp/myfifo", O_NONBLOCK|O_RDWR);
...
创建成功了,可是权限并不是666,而是仍然只能本用户访问:
prw-r--r--
其他程序如果以其他用户身份写管道,则提示无权限。只有以同一个用户的身份运行的程序能成功写入。
如果改用mknod函数(据说这是老旧的处理方式),则可以成功设置为666(其他用户可读可写)。
系统是Debian7.5.
google了一下mkfifo函数,貌似大家都是这样的写法。是姿势不对么?
谢谢。
...
mkfifo("/tmp/myfifo", 0666 );
fd = open("/tmp/myfifo", O_NONBLOCK|O_RDWR);
...
创建成功了,可是权限并不是666,而是仍然只能本用户访问:
prw-r--r--
其他程序如果以其他用户身份写管道,则提示无权限。只有以同一个用户的身份运行的程序能成功写入。
如果改用mknod函数(据说这是老旧的处理方式),则可以成功设置为666(其他用户可读可写)。
系统是Debian7.5.
google了一下mkfifo函数,貌似大家都是这样的写法。是姿势不对么?
谢谢。