蓝天,小湖,湖水中一方小筑

Get Return Value from popen System Call

popen的调用的返回值是popen自己的返回值,并不是被调用程序的返回值,如果需要取被调用程序的返回值,则需要先用pclose()取到返回的status信 息,再用wait的宏进行判断。

int status = pclose(fp);
if (status == -1) {
    printf("Error reported by pclose()\n");
    exit(1);
} else {
    printf("Process exited? %s\n", WIFEXITED(status) ? "yes" : "no");
    printf("Process status: %d\n", WEXITSTATUS(status));
}

其实是满早前问的一个问题,忘更新过来了。