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

[Help]FIFO管道非阻塞通讯问题。。。

    来源: 互联网  发布时间:2016-09-18

    本文导语:  进程AAA创建管道FIFO_AAA 进程AAA向管道FIFO_AAA写数据,从管道FIFO_BBB读数据, 该进程是主进程,进程BBB退出后进程AAA还照常运行,不阻塞。 write_fd = open(write_fifo_name,O_NONBLOCK);  read_fd = open(read_fifo_name,O_NONBLOCK) 进程BBB创建管道F...

进程AAA创建管道FIFO_AAA
进程AAA向管道FIFO_AAA写数据,从管道FIFO_BBB读数据,
该进程是主进程,进程BBB退出后进程AAA还照常运行,不阻塞。
write_fd = open(write_fifo_name,O_NONBLOCK); 
read_fd = open(read_fifo_name,O_NONBLOCK)

进程BBB创建管道FIFO_BBB
进程BBB向管道FIFO_BBB写数据,从管道FIFO_AAA读数据;

想实现进程AAA读写管道不阻塞,进程BBB读管道阻塞。
read_fd = open(read_fifo_name,O_NONBLOCK)
write_fd = open(write_fifo_name, O_WRONLY);

碰到个问题就是:进程BBB总是读不到数据???

|
你只需要在父进程中用mkfifo()来创建FIFO,然后在父、子进程中分别open就行了。
看你的代码,貌似在父子进程中都使用了mkfifo。

|
lz又发了一贴阿,你的代码太多,不知道该看哪个,给你写几条建议:
1. 不要在程序里建管道,提前建好比较好,建管道的命令是mkfifo
2.  open的时候,一个程序以O_RDONLY方式打开管道A,另一个程序就要以O_WRONLY方式打开管道A
3. read的时候最好循环读,每次的消息最好有个结束符,这样便于判断是否读完。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • java命名空间java.awt.event类keyevent的类成员方法: vk_help定义及介绍
  • help!!!help!!!help!!!help!!!help!!!help!!!help!!!
  • Help!!!!!!!!Help!!!!!!!!Help!!!!!!!!
  • 高手帮忙--HELP!HELP!HELP!!!
  • 100————>help,help
  • HELP!!HELP!!!
  • help!help!……关于双系统的问题
  • help help
  • 系统安装问题!Help、Help !
  • help! help! RAMDisk的制作, 100分
  • help help busy!!! 请问如何让一个进程进入dead状态或者编程实现让一个进程进入dead状态
  • 用PQ后,grub不好用了,help,help,
  • help,如何在vmware下安装iso的liunx.9.0呀,help
  • help啊help....
  • 【help】关于linux和windows 2000 pro 双系统的问题【help】
  • help,anybody,nobody,help?能帮帮忙吗?有人明白吗?还是我发过帖子的那个问题:(
  • 有关inetd.conf和xinetd.conf的问题!!!(help,help!!!)
  • HELP!HELP!!w2k与linux用网卡直连,怎么连?快急死了
  • 大家看看:有点纳闷,为什么linux下的参数那么多重复的?那么多求助的方式?比如一会儿用--help一会儿又是-help一会儿又变成/?了
  • help help busy!!! 知道进程的ID号,在程序里如何检查这个进程还在不在?
  • SCO UNIX & WIN2K help!!!急急急help,高分(30)


  • 站内导航:


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

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

    浙ICP备11055608号-3