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 |