这是unix v6代码: http : //v6shell.org/history/if.c
doex(earg) { ... execv(ncom, nargv, np); return(1); }
因此,如果execv成功执行,我们将无法到达下一行并返回1.而execv将返回一些东西(0?)并退出函数doex。 但为什么?
除了你必须写这个:
if ( execv(ncom, nargv, np) ) return (0); return (1);
unix v6 exec – 手册页: http : //man.cat-v.org/unix-6th/2/exec
从您链接的exec
手册页开始:
Exec使用指定文件覆盖调用进程,然后传输到文件核心映像的开头。 文件无法返回 ; 调用的核心图像丢失了。
就像今天的exec
函数一样 , execv
调用完全用新的调用替换调用进程。 如果execv
由于某种原因失败,控制将转到下一行,函数将return 1
。 否则,子进程的退出代码将用作此进程的退出代码,并且不会执行此进程的其他代码。
以上就是c/c++开发分享为什么execv退出函数?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/523249.html