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