2010-12-01 3 views
3

C에 PHP 시스템의 아날로그가 있습니까?C에서 프로세스 출력을 캡처하는 방법은 무엇입니까?

man system는 그 system 명령의 상태를 반환하지만 출력 (PHP와 같은)이 필요합니다.

물론 파이프를 사용할 수는 있지만 표준 방법이 있습니까?

+0

나는 popen ('명령은 여기에있다')을 원한다고 생각합니다. popen에 대한 man 페이지 읽기 –

답변

3

당신은 같은 popen의 사용 및 관련 기능을 만들 수 있습니다

// command to be run. 
char *cmd = "date"; 

// open pipe stream. 
FILE *fp = popen(cmd,"r"); 
int ch; 

// error checking. 
if(!fp) { 
     fprintf(stderr,"Error popen with %s\n",cmd); 
     exit(1); 
} 

// read from the process and print. 
while((ch = fgetc(fp)) != EOF) { 
     putchar(ch); 
} 

// close the stream. 
pclose(fp); 

Ideone link

2

명령의 출력을해야하는 경우가 유닉스에 popen()를 사용하십시오 ("R"로 표시하기를 명령에서 읽으려는 내용).

FILE *fp = popen("some -convoluted command", "r"); 
...check for validity... 
...read data from command... 
pclose(fp); 
관련 문제