为什么execve()不会成功返回?

时间:2014-06-03 09:46:54

标签: unix execve

我已阅读手册页。

我从这个链接http://support.sas.com/documentation/onlinedoc/sasc/doc750/html/lr2/zid-7281.htm中理解的是这一点 A successful call to execve does not have a return value because the new process image overlays the calling process image

我不清楚为什么会这样?如果新进程覆盖了调用进程,为什么它只返回失败而不是成功?

1 个答案:

答案 0 :(得分:1)

因为如果它没有按照它试图做的那样做,即用新的进程替换进程,那么返回是有意义的,通知调用者它失败了。

如果成功,那么调用execve()的代码不再存在,它已被该函数的成功执行所取代,显然它不能再做任何事了。回归就是这样。