如题,从CSAPP课程第八章异常控制中我了解到了execve函数只有失败时会返回-1,否则不返回。那请问不返回时if语句怎么起作用?
代码片段入下:
if(execve(argv[0], argv, environ)<0)
{
printf("%s: Command not found.\n", argv[0]);
exit(0);
}
如题,从CSAPP课程第八章异常控制中我了解到了execve函数只有失败时会返回-1,否则不返回。那请问不返回时if语句怎么起作用?
代码片段入下:
if(execve(argv[0], argv, environ)<0)
{
printf("%s: Command not found.\n", argv[0]);
exit(0);
}
其实就是execve执行后会把原本的程序给替换掉,故而进入if以外的执行流也都不复存在。这也就是说只有错误时返回-1,其他时候都执行execve中指定的程序而不会返回了。