如何在没有exec *()的多进程应用程序中处理fork()错误

时间:2014-05-01 15:01:03

标签: c linux fork exit

我使用fork()函数在循环中创建进程。新进程不会调用exec*()系列中的任何函数;他们只是运行他们的代码,然后使用exit()退出。他们不能失败。

但如果fork()失败并且我已经创建了一些新流程,我就不知道该怎么办。 我必须使用return或exit()吗?我是否必须使用killpg()来杀死已创建的进程? 如果fork()失败,我想清理所有内容并从主进程退出程序。 有人能给我一个如何做到这一点的提示吗?

1 个答案:

答案 0 :(得分:1)

调用killpg(getpgrp(), SIGKILL)后跟exit(...)return ...应该可以胜任。

供参考:killpg()getpgrp()

相关问题