2017-02-05 6 views
2

두 개의 C 프로그램이 있으며 일부 상위 프로그램 "parent.c"내부에서 자식 프로그램 "child.c"를 호출하려고하고 있습니다. child.c의 표준 출력. 이 일을 어떻게 하죠?다른 프로그램에서 C 프로그램 호출 및 macOS에서 자식 출력 얻기

macOS를 사용하고 있습니다. 여기

parent.c처럼에 대한

while (1) 
{ 
    // call the child program 
    // capture the output from the child 
    if (child_output == some_condition) 
    { 
     break; 
    } 
} 

child.c

printf("Hello world!") 

감사를 보일 수 있습니다 무엇 parent.c 및 child.c의 예 도움.

답변

4

간단히 popen()를 사용하고 하위 프로그램의 출력을 얻을 수 fread()/fgets()와 함께 사용할 수있는 유형 FILE *의 스트림 개체를 만듭니다. 매뉴얼 페이지를 읽으면 시작할 수있을 것입니다.

그러나 여기에는 예를 또한

#include <stdio.h> 

int 
main(void) 
{ 
    FILE *pipe; 
    char line[256]; 
    pipe = popen("ls", "r"); 
    if (pipe != NULL) { 
     while (fgets(line, sizeof line, pipe) != NULL) { 
      fprintf(stdout, "%s", line); 
     } 
     pclose(pipe); 
    } 
    return 0; 
} 

이 실제로 어떻게 작동하는지에 대한 아이디어를 얻을 수있는 설명서를 읽어이다.