我有一些功能,让我们说func,看起来像这样:
int func(...)
{
if(error(...))
return -1;
exec(...);
return -1; //exec failed
}
因此,如果出现错误,func会返回-1,但如果成功则会返回什么?
如果我在主函数中执行类似的操作,这是好的做法还是容易出错?
if(func(...) == -1)
exit(EXIT_FAILURE);
//do something
答案 0 :(得分:0)
exec()才会返回。如果在使用exec()进行另一个进程时一切都成功,那么exec()将永远不会返回。假设您使用exec()成功完成了您的过程,但在该过程的某些阶段发生了分段错误。在这种情况下,exec()不会返回-1。阅读man 3 exec