2011-07-06 2 views
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); 

하지만 난 항상 PRTINF와 기능에 제로를 얻을.

$로 반환 값을 얻는 다른 방법은 없나요? C 프로그램에서?

감사합니다. 기능은 연결된 프로세스를 기다린다)이 만일 pclose를 (:

int ret = pclose(fd); 
if(WIFEXITED(ret)) 
    printf("%d\n", WEXITSTATUS(ret)); 
+1

해보십시오 남자는 popen으로 종료 코드를 얻을 수 있습니다 : 여기

프로그램의 리턴 코드를 얻을 수있는 올바른 방법이다 종료; wait4 (2)에 의해 리턴 된대로 명령의 종료 상태를 리턴합니다. – andrewdski

+0

감사합니다. 나는 waitpid()에서 모든 것을 깨닫습니다. – SILENCE

답변

9

당신은

int rc = pclose(fd) 
관련 문제