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