C언어 header/stdio.h
pclose(3) - 생성된 pipe stream을 close함.
자연&사람
2019. 9. 24. 23:07
반응형
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)의 활용 - 다른 프로세스의 표준 입/출력 제어하기
반응형