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