免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ fifo
最近访问板块 发新帖
查看: 2867 | 回复: 8
打印 上一主题 下一主题

fifo [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-22 15:52 |只看该作者 |倒序浏览
20可用积分
把两个不同名字的fifo放在同一个进程中,作为两个线程时,设置为非阻塞,写端, 经常出现fifo open失败的情况。

这两个线程之间并不通过fifo通信,而且他们使用的也不是同一个fifo。  
   
如果对一个fifo频繁操作,如关闭后马上又打开,程序也容易down掉!感觉很不稳定。

close(m_fileDes);
int  l_options = O_WRONLY | O_CREAT | O_TRUNC;
m_fileDes=open(m_fileBasePath.c_str(),
                  l_options,
                  (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH));

最佳答案

查看完整内容

如果指定了O_NONBLOCK,只读open立即返回,如果没有进程已经为读而打开该FIFO,只写open将出错返回-1

论坛徽章:
0
2 [报告]
发表于 2009-12-22 15:52 |只看该作者
如果指定了O_NONBLOCK,只读open立即返回,如果没有进程已经为读而打开该FIFO,只写open将出错返回-1

论坛徽章:
0
3 [报告]
发表于 2009-12-23 07:28 |只看该作者
如果其中之一的fifo open出错,另一个也不能工作了。
有人能解释下吗?

论坛徽章:
7
酉鸡
日期:2013-10-30 17:17:51水瓶座
日期:2014-01-25 14:47:21天秤座
日期:2014-02-20 09:49:50处女座
日期:2014-11-04 17:44:082015年亚洲杯之中国
日期:2015-03-09 17:21:312015亚冠之北京国安
日期:2015-06-01 16:58:552015亚冠之山东鲁能
日期:2015-06-19 11:30:08
4 [报告]
发表于 2009-12-23 12:59 |只看该作者
打开模式设置成读写模式

论坛徽章:
0
5 [报告]
发表于 2009-12-23 13:59 |只看该作者
int  l_options = O_WRONLY | O_CREAT | O_TRUNC;
改成 int  l_options = O_WRONLY ;

是吗?

论坛徽章:
7
酉鸡
日期:2013-10-30 17:17:51水瓶座
日期:2014-01-25 14:47:21天秤座
日期:2014-02-20 09:49:50处女座
日期:2014-11-04 17:44:082015年亚洲杯之中国
日期:2015-03-09 17:21:312015亚冠之北京国安
日期:2015-06-01 16:58:552015亚冠之山东鲁能
日期:2015-06-19 11:30:08
6 [报告]
发表于 2009-12-23 18:37 |只看该作者
l_options = O_RDWR | O_CREAT | O_TRUNC;

论坛徽章:
0
7 [报告]
发表于 2009-12-23 19:13 |只看该作者
现在就是要打开 fifo ,写入。
int  l_options = O_WRONLY | O_CREAT | O_TRUNC;

写端可以打开fifo操作吧?

论坛徽章:
0
8 [报告]
发表于 2009-12-23 20:19 |只看该作者
如果FIFO没有读端打开,向FIFO中再继续写数据将会收到信号SIGPIPE,该信号默认的动作是终止进程

论坛徽章:
7
酉鸡
日期:2013-10-30 17:17:51水瓶座
日期:2014-01-25 14:47:21天秤座
日期:2014-02-20 09:49:50处女座
日期:2014-11-04 17:44:082015年亚洲杯之中国
日期:2015-03-09 17:21:312015亚冠之北京国安
日期:2015-06-01 16:58:552015亚冠之山东鲁能
日期:2015-06-19 11:30:08
9 [报告]
发表于 2009-12-24 08:51 |只看该作者
楼上说的正解啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP