创建fifo管道的时候,open会阻塞?
还是我的代码有问题?

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <fcntl.h>
  4. #include <errno.h>
  5. #include <sys/types.h>
  6. #Include <sys/stat.h>
  7. #define FIFO1 "/tmp/fifo.1"
  8. #define FIFO2 "/tmp/fifo.2"
  9. #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
  10. int main()
  11. {
  12. int rfd, wfd;
  13. if ((mkfifo(FIFO1, FILE_MODE) < 0) && errno != EEXIST)
  14. {//error
  15. exit(0);
  16. }
  17. if ((mkfifo(FIFO2, FILE_MODE) < 0) && errno != EEXIST)
  18. {//error
  19. exit(0);
  20. }
  21. fprintf(stderr, "before open\n");
  22. rfd = open(FIFO1, O_RDONLY, 0);
  23. wfd = open(FIFO2, O_WRONLY, 0);
  24. fprintf(stderr, "after open\n");
  25. //到这里出现问题,after open一直没有打印出来。
  26. }

man 3 open.一般3的解释较2的解释详细.

  1. O_NONBLOCK
  2. When opening a FIFO with O_RDONLY or O_WRONLY set:
  3. * If  O_NONBLOCK  is set, an open() for reading-only shall return without delay. An open() for writing-only shall return an error if no process currently has the file open for reading.
  4. * If O_NONBLOCK is clear, an open() for reading-only shall block the calling thread until  a  thread  opens  the  file for writing. An open() for writing-only shall block the calling thread until a thread opens the  file for reading.

复制代码

转载于:https://www.cnblogs.com/YL450606975/p/4427238.html

unix 网络编程卷2 第43页 管道:open竟然会阻塞?相关推荐

  1. 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决

    <Unix网络编程卷1-套接字联网API>是本好书. 但是第一个例子不是很好编译. 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其rea ...

  2. 《UNIX网络编程 卷1:套接字联网API》学习笔记——基本TCP套接字编程

    UNIX网络编程--基本TCP套接字编程 socket 函数 connect 函数 bind 函数 listen 函数 accept 函数 fork 和 exec 函数 并发服务器 close 函数 ...

  3. 《UNIX网络编程 卷1:套接字联网API(第3版)》——第2章 传输层:TCP、UDP和SCTP 2.1概述...

    本节书摘来自异步社区<UNIX网络编程 卷1:套接字联网API(第3版)>一书中的第2章,第2.1节,作者:[美]W. Richard Stevens , Bill Fenner , An ...

  4. 1.UNIX网络编程卷1:源码配置

    本节主要介绍UNIX网络编程卷1(第三版)在Ubuntu16.04的配置问题,并运行一个简单时间获取客户程序. 1.首先下载源文件,链接如下:UNIX Network Programming Sour ...

  5. 《UNIX网络编程卷1》第一例及问题

    <UNIX网络编程卷1>一上来就给了一个例子,新手不容易看懂,估计作者也没有打算让人看懂,作了详尽的解释.新手都想运行这个程序,我也是. 首先,给的程序都是在unix下运行的.这里有全书代 ...

  6. 《UNIX网络编程 卷2:进程间通信(第2版)》——1.4 名字空间

    本节书摘来自异步社区<UNIX网络编程 卷2:进程间通信(第2版)>一书中的第1章,第1.4节,作者:[美]W. Richard Stevens著,更多章节内容可以访问云栖社区" ...

  7. 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版)

    图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) UNIX网络编程 卷1:套接字联 ...

  8. UNIX网络编程卷2:进程间通信(第2版)PDF——带完整书签

    微信搜索[书为屋],获取更多免费学习资源和小工具,一起学习,一起进步! 下载地址:UNIX网络编程卷2:进程间通信(第2版) 带完整书签: 微信搜索[书为屋],获取更多免费学习资源和小工具,一起学习, ...

  9. UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订)...

    UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本信息 原书名: Unix Network Programming, Vol ...

最新文章

  1. MySQL数据库使用连接更新表中某个字段数据
  2. LeetCode 17电话号码的字母组合(搜索)18四数之和
  3. 项目管理(4):备战pmp
  4. 华为云服务怎么弄金卡会员_万科牵手华为终端云服务,共建松山湖智慧商圈
  5. python字典更改元素_python – 返回带有一个已更改元素的字典
  6. html剧场座位设计图,如何设计剧院座位,21个细部案例
  7. SPOJ VLATTICE Visible Lattice Points(莫比乌斯反演)题解
  8. install mysql with source code
  9. SP 梦网masterSP模式下的sp生存
  10. 献给盲目追谁IT的管理者的话,转载:活着就是王道---- -一年
  11. codeforces 697C Lorenzo Von Matterhorn(二叉树LCA)
  12. 使用VueBarcode结合vueEasyPrint打印条形码标签
  13. 周金涛生前20篇雄文精华,一文尽览
  14. Eclipse+tomcat开发j2ee经典入门例子
  15. 互联网(internet)、因特网(Internet)、万维网(World Wide Web)三者区别
  16. 第一次实验报告:使用Packet Tracer分析HTTP数据包
  17. time(),date(),microtime()三者的区别
  18. java-面向对象编程-三大特性之封装
  19. Rectangle对象详解
  20. iCloud学习笔记

热门文章

  1. B1928 日期差值
  2. 【第一季】CH07_FPGA_RunLED创建VIVADO工程实验
  3. 使用secure CRT的SFTP在LINUX与WINDOWS下交换文件
  4. select()函数用法
  5. 获取当前周、上一周、下一周日期
  6. 如何设置WebLogic生成的日志文件的权限?
  7. 【51nod】1239 欧拉函数之和 杜教筛
  8. iOS - Frame 项目架构
  9. MyEclipse+Tomcat web项目改名
  10. 细说Nginx配置文件