2013-09-30 3 views
1

일부 "문자열"을 외부 프로그램에 전달하고 피드백을 얻을 수있는 C++ 코드를 작성하는 데 어려움을 겪고 있습니다. 외부 프로그램의 출력을 C++ 코드로 가져 오기

예를 들어 내가 GCC로 C++ 코드를 통과하고 내 원래의 코드로 다시 오류 메시지를 얻을하고 싶은 말은 C에 그 작성 방법을

++

답변

5

그것을하는 방법은 두 가지가 있습니다.

FILE* fp = popen("/some/command argument1 argument2", "r"); 

char input[256]; 
while (fgets(input, sizeof(input), fp)) 
{ 
    std::cout << "Got input from command: " << input; 
} 

다른 더 복잡한 방법으로 (그리고 뒤에서 popen 작동 방법)을을 만드는 것입니다 : 당신은 단지 외부 프로그램의 출력을 읽으려면 간단한 방법은, popen을 사용하는 것입니다 새 익명 파이프 (pipe), 새 프로세스 (fork), 파이프를 사용하는 새 프로세스의 표준 출력을 설정 한 다음 exec 하위 프로세스의 프로그램을 설정합니다. 그런 다음 파이프의 읽기 끝에서 프로그램의 출력을 읽을 수 있습니다. 이것은 좀 더 유연하고 권장되는 방법입니다 (설정하는 것이 더 복잡하더라도). 양방향 통신을 원할 경우 (예 : 외부 프로그램 표준 입력 출력에 출력하려는 ​​경우) 또한 유일한 방법입니다.

관련 문제