0

执行 execvp() 系统调用时,如果调用成功,则不会返回。这是否意味着该过程永远不会终止?如果是这样,它是否始终处于运行状态?我知道这是一个基本问题,但我认为当手册页中说“exec() 函数仅在发生错误时返回。返回值为 -1,并且errno 设置为指示错误。”

提前致谢!

4

1 回答 1

2

execve 成功后,将当前正在执行的进程映像完全替换为另一个可执行文件。所以函数永远不会返回,因为原始过程已经消失了。这几乎就像您在第一个过程中调用了 exit() 一样。

如果它*确实*返回,那么这显然意味着当前进程映像没有被替换,因为出现了问题。errno 告诉你出了什么问题。

于 2013-01-09T05:01:26.567 回答