执行execvp()系统调用时,如果调用成功则无法返回。这是否意味着该过程永远不会终止?如果是这样,它总是处于运行状态? 我知道这是一个基本问题,但我认为我对手册中的含义有一个严重的混淆,当它说“exec()函数只在发生错误时返回。返回值为-1,并且errno设置为指示错误。“
提前致谢!
答案 0 :(得分:2)
执行成功后,将当前正在执行的进程映像替换为另一个可执行文件。因此原始过程消失后,函数无法返回。这几乎就像你在第一个进程中调用exit()一样。
如果它*返回,那么这意味着当前的过程图像显然没有被替换,因为出了问题。 errno告诉你出了什么问题。