2
我正在使用popen()来调用另一个程序,并希望得到它的返回值$?
例如:
FILE* fd = popen("/usr/local/my_check > /dev/null ; echo $?","r");
int read_num = fread(buffer, sizeof(char), BUFFER_SIZE, fp);
printf("%s\n", buffer);
pclose(fd);
但我总是在prinf功能得到为零。
通过$获得返回值的任何其他方式?在C程序中?
谢谢!
这里是让程序的返回码的正确方法是:
int ret = pclose(fd);
if(WIFEXITED(ret))
printf("%d\n", WEXITSTATUS(ret));
试试man POPEN获取退出代码:该函数,pclose()关联进程函数等待终止;它返回命令的退出状态,由wait4(2)返回。 – andrewdski
谢谢,我意识到waitpid()的全部内容 – SILENCE