我正在使用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));
答案 0 :(得分:9)
您可以使用
获取退出代码int rc = pclose(fd)