控制是否在"execvp()"之后返回?

Aja*_*arg 6 c exit execvp


if(pid == 0)
{
      execvp(cmd, args);
      // printf("hello"); // apparently, putting this or not does not work.
      _exit(-1);
}
else
{
      // parent process work
}
Run Code Online (Sandbox Code Playgroud)

"execvp()"将当前程序替换为要执行的程序(当然在相同的进程上下文中).因此,在execvp()之后设置任何printf()调用都不起作用.这就是文档所说的,我也验证了它.

但是,为什么_exit()需要..?在execvp()之后,控件是否会返回语句?

我会感激任何指针.

谢谢

ken*_*ytm 6

如果失败,该函数将返回.

如果其中一个exec函数返回到调用进程映像,则发生错误; 返回值应为-1,并设置errno以指示错误.

_exit()允许正常终止该进程,并返回一个退出代码,即使EXEC失败.