当前位置:  技术问答>linux和unix

打开命名管道权限的疑问

    来源: 互联网  发布时间:2017-01-23

    本文导语:  本帖最后由 hongbin7698 于 2011-12-09 14:45:42 编辑 #include #include #include #include #include #include int main(){ if(mkfifo("testfifo",O_CREAT|O_RDWR) == -1) { perror("mkfifo"); return 0; } int fd;  if((fd=open("testfifo",O_WRONLY,0100)) == -1){ perror("open"); re...

本帖最后由 hongbin7698 于 2011-12-09 14:45:42 编辑

#include
#include
#include
#include
#include
#include
int main(){
if(mkfifo("testfifo",O_CREAT|O_RDWR) == -1)
{
perror("mkfifo");
return 0;
}
int fd; 
if((fd=open("testfifo",O_WRONLY,0100)) == -1){
perror("open");
return 0;
}
char buf[]="test data.........";
int len=strlen(buf);
if(write(fd,buf,len) == -1){
perror("write");
return 0;
}

return 0;
}

如上一个程序:当用普通身份执行时,表示无法打开,用root可以打开pipe,提示如下:
china@china-MS-7302:~/code$ ./a.out 
open: Permission denied
查看权限为:
p--x------  1 china china    0 2011-12-09 14:31 testfifo|

不知道应当如何正确打开,当程序是以普通用户身份运行时?

|
mkfifo默认就是creat|excl,第二个参数是Mode而不是打开方式。

mkfifo是make a fifo,不是open a fifo。

|
if(mkfifo("testfifo",O_CREAT|O_RDWR) == -1)
-----------------------------------------------
qq120848369说的对,改为if(mkfifo("testfifo", 0600) == -1)试一下吧

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • VPN虚拟局域网和本地局域网共存(连上vpn后正常打开网页)
  • linux 如何让端口一直处于打开状态 比如 nc -lp 12000& 打开12000端口 可是马上就关闭了 现在可有办法让其一直处于打开状态
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • fedora14无法打开桌面,所有文件夹都无法打开。 iis7站长之家
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • 通过jsp打开word文件,怎样去掉打开前的询问框?
  • windows 7下打开或者关闭telnet客户端/服务端命令方法操作步骤
  • QT中如何判断一个窗口已打开,打开的话并如何关闭?
  • RH9.0下用gedit打开一个文本文件汉字显示正常,可用vi打开就不行了!
  • 怎么在点击一个链接后,把JSP网页打开在另外的窗口打开?
  • vim打开动态库文件会乱码,怎么打开,百度了都找不到合适的解决,求高手??????
  • fedora14无法打开桌面,所有文件夹都无法打开。
  • 紧急啊。。我用的ubuntu12,我安装了adobe flash player,可以打开在线视频,但是不能打开webQQ里的视频功能
  • fork一个子进程后在打开一个文件,如何在子进程中使用这个打开的文件描述符号
  • 我要监测一台远程电脑的状态(未上线/上线但没打开每个应用程序/上线且打开应用程序),该如何作?
  • jquery代码-在弹出窗口中打开链接和在选项卡中打开链接
  • solaris 2.6 中用vi打开一个文件,可是却是只读的,编辑后无法保存,怎么能不以只读方式打开
  • bak文件怎么打开 2000w数据怎么打开?
  • VS2005打开VS2008项目的2种方法(vs2005怎么打开2008)
  • 我下载了UNIX环境高级编程的源码,可是打开时有错误,怎么才可以打开?还有谁有《UNIX环境高级编程(英文版)》的chm格式的ebook?
  • Android程序打开和对输入法的操作(打开/关闭)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3