출력 내용을 다른 프로그램의 입력 내용을  파이프로 전달 

파이프 한 프로그램 프로세스에서 다른 프로세스로 정보를 전달하는 기술

            즉 우리가 알고있는 파이프 =연결 통로라 생각하면된다.


popen 함수는 명령어를 표준 입력/출력 장치 를 활용하여 주고 받기 위해 파일 디스크립터를 오픈함

         Input / Output 파이프 를 open 함


popen


설명        파일을 사용하기 위해 열기(open)합니다                                            

헤더        #include <fcntl.h>  //헤더파일                                                       

형태         FILE *popen(const char *command, const char *type);  

인수[in]    const char *command   실행할 명령어

              const char *type         PIPE 사용목적 

                                 'r'  -  파이프로 표준 출력 내용을 읽기위함

                                 'w' -  파이프로 표준 입력으로 데이터를 입력함

리턴값    FILE*      성공시 FILE* !=  NULL

                           실패  FILE* == NULL


#include<stdio.h>

#include<string.h>


#define BUF_SIZE  1024

int main(void)

{

   char  buff[BUF_SIZE];

   FILE *fp;


   fp = popen( "ipconfig", "r");

   if ( NULL == fp)

   {

      perror( "popen() 실패");

      return -1;

   }

   

   if (fp != NULL) {

       memset(buff,0x00,sizeof(buff));

       while( fgets( buff, BUF_SIZE, fp) ) {

           if (buff != NULL) {

            printf("%s",buff);

           

   }

   memset(buff,0,sizeof(buff));

       } 

   }

   pclose( fp);

   return 0;

}


출력

]$ ./a.out

 C 드라이브의 볼륨에는 이름이 없습니다.

 볼륨 일련 번호: 82A3-6BAA


 C:\Users\ziwas\OneDrive\문서 디렉터리


2018-01-30  오후 09:48    <DIR>          .

2018-01-30  오후 09:48    <DIR>          ..

2018-01-29  오후 10:49           153,338 callback.exe

2018-01-29  오후 10:50                92 callback.layout

2018-01-29  오후 10:51                76 main.c

2018-01-29  오후 10:51            22,317 main.o

2018-01-30  오후 09:48             1,153 Makefile.win

2018-01-30  오후 09:48               946 test.c

2018-01-29  오후 11:57             1,010 test.dev

2018-01-30  오후 09:48           127,449 test.exe

2018-01-29  오후 11:57                93 test.layout

2018-01-30  오후 09:48            23,608 test.o

              10개 파일             330,082 바이트

               2개 디렉터리  54,489,231,360 바이트 남음

]$




'C언어 > 함수' 카테고리의 다른 글

open - 파일 열기  (0) 2018.01.25
fstat -파일의 상태 및 정보  (0) 2018.01.24
ftell - 현재 읽기/쓰기 위치  (0) 2018.01.23
ftell  (0) 2018.01.21
feof -파일의 끝  (0) 2018.01.21

WRITTEN BY
DkDragon

,