본문 바로가기
Research/Programming

외부 프로그램을 실행시키고 출력결과를 가져오려면 ?

by sunnyan 2005. 8. 23.
728x90
http://www.joinc.co.kr/modules/moniwiki/wiki.php/FAQ?action=recall&rev=1.27#toc

1.4 외부 프로그램을 실행시키고 출력결과를 가져오려면 ? #

  • 제가 만든 프로그램에서 'ls'등을 실행시키고 화면에 출력되는 값들을 받아 오려면 어떻게 해야 하는지 궁금합니다. 이 값들을 읽어들이고 분석해서 어떤 일을 하는 프로그램을 짜고 싶습니다.
fork()시킨후에 execl를 이용해서 외부 명령어를 실행시키고 이것을 pipe로 연결하는 방법이 있습니다. 그러나 이것은 복잡한 방법이고 간단하게 popen()을 사용하면 됩니다.
#include <stdio.h>
int main()
{
    FILE *fp = NULL;
    char buff[256];
    if ((fp = popen("ls -al", "r")) == NULL)
    {
        perror("popen error ");
        exit(0);
    }
    while(fgets(buff, 255, fp))
    {
        printf("%s", buff);
    }
    fclose(fp);
}

728x90