让我们考虑以下示例。
我有一个父进程创建一个管道,生成一个子进程并使用该管道读取子进程的标准输出。在某些时候,父进程不再对子进程的输出感兴趣,并关闭管道的读取端。
显然,如果孩子继续写,这是否会导致子进程收到SIGPIPE
信号。
问题:有没有办法将子进程的输出重定向到/dev/null
它仍然继续运行并产生输出,但父进程可以继续做其他事情并waitpid
稍后调用子进程?请注意,将孩子的SIGPIPE
处理程序设置SIG_IGN
为不是一个选项,因为我无法控制孩子的信号处理程序。