如何调用另一个程序并获得$的返回值?

时间:2011-07-06 14:32:40

标签: c bash shell popen

我正在使用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));

1 个答案:

答案 0 :(得分:9)

您可以使用

获取退出代码
int rc = pclose(fd)