当前位置: 技术问答>linux和unix
命名管道open时被阻塞了
来源: 互联网 发布时间:2015-03-16
本文导语: 有一个主进程和一个子进程,它们之间通过两个命名管道进行通信,只有在主进程kill子进程的时候才把命名管道删除,现在有这么一个问题,如果使用 kill -9 子进程号 子进程杀掉后,在主进程打开命名管道时就...
有一个主进程和一个子进程,它们之间通过两个命名管道进行通信,只有在主进程kill子进程的时候才把命名管道删除,现在有这么一个问题,如果使用
kill -9 子进程号
子进程杀掉后,在主进程打开命名管道时就被阻塞了,请问有什么解决方法么?
kill -9 子进程号
子进程杀掉后,在主进程打开命名管道时就被阻塞了,请问有什么解决方法么?
|
对一个FIFO,如果不设置成O_NONBLOCK方式,如果以只读或只写方式打开都会阻塞(因为kill -9 后你的子进程已经退出,相应他打开的FIFO也关闭了。
所以要想避免这种情况,还是把FIFO设成O_NONBLOCK的吧
所以要想避免这种情况,还是把FIFO设成O_NONBLOCK的吧
|
应该有SIGPIPE的,你看看。
|
可以把管道社为非阻塞,或者用select