엔지니어

popen 함수 pclose 함수 예제

Nj 2012. 7. 6. 21:33

popen()

- 명령어를 shell을 기동 시켜서 열고 pipe로 연결한다.

- 이를 위해서 내부적으로 fork(), pipe()를 사용한다.

- 실행 쉘인 /bin/sh에 -c 옵션을 사용하여 전달

 

pclose()

- popen으로 열린 파이프 핸들 사용을 종료한다.

 

 

 

#include 
#include 
#include 
#include 

int main()
{
    FILE *fp = NULL;
    char cmd[1024] = {0,};
    char buffer[1024];
    pid_t   ppid;
    pid_t   *pid;

    snprintf(cmd, sizeof(cmd), "pidof -x /usr/sbin/sshd");

    fp = popen(cmd, "r");
    if( fp==NULL) {
        return -1;
    }

    fgets(buffer, sizeof(buffer), fp) ;
    printf("%s\n", buffer);
    pclose(fp);
    return 0;
}
실행결과 화면
$ ./a.out 
5967

 

 

 

 

 

 

 

 

 

=============================================

 

그냥 pidof 명령을 실행해준다. 내부의 ssh데몬의 pid를 가져다가

뿌려주는 역할을 한다.

반응형

'엔지니어' 카테고리의 다른 글

소프트웨어 개발방법론의 함정  (331) 2012.07.06
mkfifo 함수 예제  (471) 2012.07.06
pipe 함수 예제  (451) 2012.07.06
네트워크 프로그래밍 - 시리얼 통신 - 자료 수신을 위한 poll  (273) 2012.05.30
NMS의 기본 개념 - 장애관리  (295) 2011.08.23