0

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

4

0 回答 0