使用exec()的函数的返回值是什么,如下所示?

时间:2018-05-20 13:49:35

标签: c return fork exec return-value

我有一些功能,让我们说func,看起来像这样:

int func(...)
{
    if(error(...))
        return -1;
    exec(...);
    return -1; //exec failed
}

因此,如果出现错误,func会返回-1,但如果成功则会返回什么?

如果我在主函数中执行类似的操作,这是好的做法还是容易出错?

if(func(...) == -1)
   exit(EXIT_FAILURE);
//do something

1 个答案:

答案 0 :(得分:0)

只有在发生另一个进程时出现错误,

exec()才会返回。如果在使用exec()进行另一个进程时一切都成功,那么exec()将永远不会返回。假设您使用exec()成功完成了您的过程,但在该过程的某些阶段发生了分段错误。在这种情况下,exec()不会返回-1。阅读man 3 exec