通过调用system(3)生成的ECHILD是否失败?

时间:2013-02-12 17:48:20

标签: c++ embedded cross-platform

我目前正在开发一个C ++服务器,它接收请求并生成新进程来处理它们。那些子进程然后(有时)必须执行对系统(3)的调用以调用其他程序(我无法控制的第三方程序)。此服务器正在移植到新的硬件平台,因此我必须保持多个系统之间的兼容性,返回到内核2.4.20。我现在忽略了孩子(信号(SIGCHLD,SIG_IGN)),这在旧内核上工作正常,但是当我在不同硬件上移植服务器(2.6,3.2)的较新内核上运行服务器时,系统调用失败,系统(3)将errno设置为ECHILD。内核有什么变化,如果我不能忽视它们,处理孩子的正确方法是什么? (注意,当我按照Beej的例子注册SIGCHLD的处理程序时,它工作正常)

0 个答案:

没有答案