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

请教命名管道的问题

    来源: 互联网  发布时间:2016-06-19

    本文导语:  读了一资料,但有个问题不是太明白,向大家请教 有一个进程A从别的地方获取数据然后写入到FIFO中,当PIPE_BUF满了或者FIFO的另一端为读而打开的进程B死掉了,这个时候,写进程A是不是就是一直阻塞,如果是,那么...

读了一资料,但有个问题不是太明白,向大家请教

有一个进程A从别的地方获取数据然后写入到FIFO中,当PIPE_BUF满了或者FIFO的另一端为读而打开的进程B死掉了,这个时候,写进程A是不是就是一直阻塞,如果是,那么进程A就无法从别处获取数据,那么这些数据是不是就算丢失了呢?举个例子,把apache的日志文件直接定向到一个FIFO上做为写端,那么当读端的进程死掉或者PIPE_BUF满了之后,apache的日志记录会出现什么样的情况,后续的访问日志会不会丢失,会不会影响到apache的运行.谢谢

|
没用过把apache的日志文件直接定向到一个FIFO上做为写端,不过倒是用过管道。
管道一般两种打开方式:阻塞、非阻塞
我的经验是:
阻塞方式下:如果一方没打开,另一方就也打不开。如果读写端都打开了,而运行过程中如果写端程序down掉了,读端再调用read,读不出来数据的,但read不会阻塞。如果:写端没有down,只是没有写数据,会阻塞到写端执行write()或者超时(有没有超时我不知道,你可以查查)。
非阻塞模式下:上面问题就都不会阻塞了,只是open的返回值是-1,read和write也没有效果。

凭记忆写的,希望对你有帮助。

|
需要设置FIFO为非阻塞模式就可以了。否则应该会影响apache的运行。

|
估计是丢了,如果不重新读取的话。

|
若是阻塞模式,
apache的日志记录会报错,
不知道会不会down掉。
lz可以去试下。

|
不是,这个问题在apuev2上写的很清楚:

若写入一个没有打开着用于读的管道或FIFO,内核将产生一个SIGPIPE信号。

若设置了O_NONBLOCK标志:  管道满时将返回一个EAGAIN错误
若没有设置:管道应该是阻塞

|
不会 友情UP

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












  • 相关文章推荐
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • 请教,请教,这个问题是为什么????
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 请教一个opengl的问题
  • 请教两个redhat9问题
  • 请教kdevelop的问题
  • 送上100分问题请教,同时学习一下进程通讯问题,望各位不吝赐教
  • 请教linux 下的adsl拨号问题.
  • 请教unix常用命令命令问题
  • 请教,帖子回复的显示问题
  • 请教关于sendto问题
  • 请教linux共享上网的问题!!!在线等,问题解决马上结贴
  • 有在用AXIS的朋友吗?请教一个问题
  • 高分请教,n简单的问题急急!!!
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教这种循环的执行过程
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教两个shell


  • 站内导航:


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

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

    浙ICP备11055608号-3