系统相关
首页 > 系统相关> > linux-防止SIGPIPE

linux-防止SIGPIPE

作者:互联网

让我们考虑以下示例.

我有一个父进程,该进程创建一个管道,产生一个子代,并使用该管道读取子代的标准输出.在某些时候,父进程不再对子进程的输出感兴趣,并关闭管道的读取端.

显然,如果孩子继续写作,这将导致孩子进程收到SIGPIPE信号.

问题:是否有一种方法可以将子级的输出重定向到/ dev / null,使其仍然保持运行并产生输出,但是父进程可以继续执行其他操作,稍后再对子级调用waitpid?请注意,将子级的SIGPIPE处理程序设置为SIG_IGN是不可选项,因为我无法控制子级的信号处理程序.

解决方法:

自己模拟/ dev / null-fork()一个新进程,其工作是读取和忽略子级的输出.

标签:sigpipe,posix,linux,signals,ipc
来源: https://codeday.me/bug/20191201/2078391.html