반응형
pclose(3)
#include <stdio.h>
int pclose(FILE *stream);
popen(3)으로 생성한 pipe stream을 close합니다. FILE *이지만 flcose(3)로 닫지 않습니다. pclose(3)는 wait4(2)로 popen(3)한 프로세스의 종료를 대기한 후에 프로그램이 종료되면 return됩니다.
파라미터
stream
- popen(3)으로 생성한 pipe stream.
RETURN
-1 이외
- 정상적으로 pipe stream이 close되었습니다.
-1
- 오류가 발생하였으며, 상세 오류내용은 errno 전역변수에 설정됩니다.
활용 예제
Sample. ls -al 명령어의 결과를 받아서 활용하는 sample
#include <stdio.h>
#include <errno.h>
int main(int argc, char *argv[])
{
char line[4096];
FILE *fp;
if((fp = popen("ls -al", "r")) == NULL) {
fprintf(stderr, "pipe open error: %s\n", strerror(errno));
return 1;
}
while(fgets(line, 4096, fp) != NULL) {
printf("%s", line);
/* 또는 ls -al 결과를 parsing하여 활용하는 로직... */
}
pclose(fp);
return 0;
}
see also : popen(3) popen(3), pclose(3)의 활용 - 다른 프로세스의 표준 입/출력 제어하기
반응형
'C언어 header > stdio.h' 카테고리의 다른 글
remove(3) - 파일 또는 디렉토리를 삭제하는 함수 (0) | 2019.09.24 |
---|---|
setvbuf(3) - stream buffering 방식을 지정함 (0) | 2019.09.24 |
popen(3) - 프로세스로부터 pipe stream open (0) | 2019.09.24 |
fileno(3) - stream에 할당된 file descriptor얻기 (0) | 2019.09.24 |
clearerr(3) - 오류 및 eof 상태 초기화 (0) | 2019.09.24 |