标签: c linux fork exit
我使用fork()函数在循环中创建进程。新进程不会调用exec*()系列中的任何函数;他们只是运行他们的代码,然后使用exit()退出。他们不能失败。
exec*()
exit()
但如果fork()失败并且我已经创建了一些新流程,我就不知道该怎么办。 我必须使用return或exit()吗?我是否必须使用killpg()来杀死已创建的进程? 如果fork()失败,我想清理所有内容并从主进程退出程序。 有人能给我一个如何做到这一点的提示吗?
fork()
killpg()
答案 0 :(得分:1)
调用killpg(getpgrp(), SIGKILL)后跟exit(...)或return ...应该可以胜任。
killpg(getpgrp(), SIGKILL)
exit(...)
return
供参考:killpg(),getpgrp()