풍뇌의 블로그

landofwind.egloos.com

포토로그 마이가든



명령어 실행후 콜솔에 찍히는 내용을 얻기

#include "stdio.h"

 

int main()

{

    FILE *fp;

    int status;

    char line[100];

 

    // 시스템 명령어를 실행 한다.
    fp = popen("ps -ef|grep npc", "r");

 

    while (fgets(line, 100, fp) != NULL)
    {

        printf("%s", line);

     }
    //받드시 닫어야 한다. 

    status = pclose(fp);

 

    return 0;

}

 

ponen()과 pclose()

함수 popen()은 어떤 하나의 프로세스에게 하나의 파이프만을 생성하기 때문에 쓰거나 읽기 위한 용도로만 사용될 수 있다.

#include <stdio.h>
FILE *popen(const char *command, const char *type);
 린턴값 : 참이면 파일 포이너, 에러일 경우에는 NULL

int pclose(FILE *fp);
 리턴값: 에러일 경우 프로세스 종료 상태 값이나 -1.


pipe() 사용하기

#include <stdio.h>
int pipe(int fd[2]);
 리턴 값 : 참이면 0, 에러일 경우에는 -1

: fd[0] 는 읽기 위한 채널,
  fd[1] 은 쓰기 위한 채널.

1