2011-04-12 4 views
0

system() 명령을 사용하여 C 프로그램 내에서 스크립트를 실행하려고합니다. 안에 main(), 나는 스크립트를 실행하고 결과를 반환합니다. 스크립트의 결과를 문자열에 넣고 조건을 확인하려면 어떻게합니까? 나는 파일을 가지고 그것을 할 수 있다는 것을 알고 있지만 결과를 문자열로 넣을 수 있는지 궁금해하고있다.Unix 및 C에서 출력 리디렉션

샘플 등이 될 것입니다 :

main() 
{ 
    system("my_script_sh"); // How can I get the result of the my_script_sh 
} 

답변

5

시스템 명령을 사용할 수 없습니다. 다음 my_script_sh | ./your_c_program와 C를 - 예를 잘

FILE *stream; 
    char buffer[150];  
    stream = popen("ls", "r"); 
    while (fgets(buffer, 150, stream) != NULL){ 
     // Copy the buffer to your output string etc. 
    } 

    pclose(stream); 
+0

감사합니다. 윌 popen 시도합니다. – user629034

0

사용 popen()char * 버퍼로 스트림을 읽습니다.

0

프로그램 중 system("my_script_sh")을 가지고 파이프와 쉘에서 프로그램을 호출하는 것입니다 할 수있는 가장 쉬운 방법 : 가장 좋은 것은 popen를 사용하는 것입니다 프로그램은 stdin (파일 설명자 0)을 읽습니다.

그럴 수 없다면 man 3 popen을보십시오. 기본적으로 system 대신 popen을 사용하면 프로그램의 출력을 읽기 위해 읽을 수있는 파일 핸들을 제공합니다. 여기

유용 할 수있는 몇 가지 링크입니다 :

관련 문제