<分区>
是否可以在尝试写入/读取之前检查管道是否损坏,以便我可以跳过它并继续执行程序?
我正在利用 while
循环写入从父级到多个子级的管道通信。在循环过程中,几个 child 将关闭。当循环出现并尝试再次写入它们时,我的程序关闭,因为它被 SIGPIPE 杀死,因为管道已损坏。我知道管道坏了,我给 children 编程让他们关闭管道并退出(必要的)。我仍然想完成循环并继续执行程序。我希望它检查管道是否坏了,如果坏了就跳过它(没有错误输出),然后继续执行程序(其他 child 仍然需要写入)。
那么,这可能吗?用 c 编写的示例会很棒。
这是我要问的一个简单的伪代码表示:
int i = 0;
while(i != 5)
{
if (mypipe[WRITE] is BROKEN)
//Do Nothing ---Basically Skip
else if (some condition)
write(mypipe[WRITE]);
i++;
}
此问题与 previous post 有关我的,尽管我的问题的背景不同。您可以在那里查看实际程序的代码。