求助兄弟进程管道通信问题
想通过一个父进程fork出若干个兄弟进程,让他们用管道连成一个环通信,但是子进程如果调用read就会一直阻塞在哪里,怎么让read中断,然后重新去read一个管道描述符啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
想通过一个父进程fork出若干个兄弟进程,让他们用管道连成一个环通信,但是子进程如果调用read就会一直阻塞在哪里,怎么让read中断,然后重新去read一个管道描述符啊?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
我也是新手啊,呵呵试着回答 一下。read没有设置不阻塞直接返回-1的机制,要中断的话只能你使用超时,就是 alarm();
例如
alarm(4);
read();
alarm(0);
这样限时4秒读,如果发生阻塞的话进程会收到信号。然后你再设置接收信号的函数就可以了。
http://blog.chinaunix.net/space.php?uid=21383798 是我的博客,有空多交流
我也是新手啊,呵呵试着回答 一下。read没有设置不阻塞直接返回-1的机制,要中断的话只能你使用超时,就是 alarm();
例如
alarm(4);
read();
alarm(0);
这样限时4秒读,如果发生阻塞的话进程会收到信号。然后你再设置接收信号的函数就可以了。
http://blog.chinaunix.net/space.php?uid=21383798 是我的博客,有空多交流
我也是新手啊,呵呵试着回答 一下。read没有设置不阻塞直接返回-1的机制,要中断的话只能你使用超时,就是 alarm();
例如
alarm(4);
read();
alarm(0);
这样限时4秒读,如果发生阻塞的话进程会收到信号。然后你再设置接收信号的函数就可以了。
http://blog.chinaunix.net/space.php?uid=21383798 是我的博客,有空多交流
也来学习一下
回复 4# hai836045106
谢谢了,我已经知道解决办法了