我正在运行execl函数来通过我的代码编译程序。 我想检查编译是否正确。 所以我写了b = execl("usr/bin/gcc","cc",path,NULL);
然后检查if( b==-1)
。 但即使汇编中存在错误,它也没有进入if语句。 有什么想法吗? 谢谢!
int b=0; if ((pid1 = fork())<0) perror("Error forking"); else { if(pid1==0) b= execl("/usr/bin/gcc","cc",path,NULL); else wait(&status); } if(b==-1) printf("n--------n");
如果exec
成功,它将永远不会返回。 成功意味着能够找到并启动命令。 如果不成功,则返回-1。
您需要的是从父进程中的wait
中使用的status
提取命令的退出值。
您有一些宏来确定子进程运行的状态。
如果此status
等于0,那么您将知道该命令成功运行,任何其他值意味着该命令无法正常执行其任务。
以上就是c/c++开发分享execl的返回值相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/518757.html