【发布时间】:2014-07-04 23:27:36
【问题描述】:
我正在创建一个 TCP 服务,该服务在每次客户端连接时分叉一个新进程。在分叉之前,我设置了一个管道,以便孩子可以将连接期间收集的统计信息发送回父级。父关闭写端,子关闭读端,父维护一个读端文件描述符数组,每个子一个。
当孩子完成连接并退出时,我不确定如何处理这些文件描述符。孩子是否需要通过管道通知父母它即将退出,以便父母可以关闭管道?或者父进程可以在子进程退出后自动检测到损坏的管道并关闭它?
父程序中的代码正在运行一个循环,其中select() 检测侦听套接字和子管道的读取端上的活动。每个子进程在运行时可以向父进程发送多条消息。
一般来说,当子进程退出时,父进程应该如何处理管道文件描述符?
【问题讨论】: