Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402754
  • 博文数量: 96
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-22 09:08
个人简介

最近的研究方向:Nginx

文章分类
文章存档

2017年(2)

2016年(59)

2015年(35)

我的朋友

分类: LINUX

2015-09-09 11:00:00


  • 问题:创建管道失败,报错“open: No such file or directory”。是目录权限的问题。

  • 分析:
    1)fifo_read.c中,定义管道路径为:
        #define FIFO "/mnt/hgfs/rhelshare/c_code/day4-process_conmunication/test15/myfifo"
     创建管道:   
        if((mkfifo(FIFO, O_CREAT | O_EXCL)) && (errno != EEXIST))         
               printf("Cannot create fifoserver.\n");
     创建管道失败,mkfifo返回“-1”。出错:
        Cannot create fifoserver.
        Preparing for reading bytes...
        open: No such file or directory

    2)gdb发现errno=1,即EPERM,操作不被允许。
    3)因为,“/mnt/”目录权限为“rwxr-xr-x”,root可写;而其下的“hgfs/”是与Windows主机的共享目录,其权限为“r-xr-xr-x”,虽然此目录下的所有文件及目录均有“rwxrwxrwx”权限,管道也不能创建成功。

    4)解决办法:更改管道路径为其他可写路径,如“/tmp/myfifo”或“/mnt/myfifo”。

    疑问:为什么在当前目录可以进行文件读写操作,却不能用于管道通信。
阅读(6107) | 评论(0) | 转发(0) |
0

上一篇:大端模式&小端模式

下一篇:linux ftok函数

给主人留下些什么吧!~~