popen 에 관한 질문..
popen() 함수를 이용해서 '|'구현 공부를 하고 있는 학생입니다.
'|'를 하나만 쓸 경우는 ( ls | wc 라고 입력을 하였다하면..)
fp01 = popen("ls", "r");
fp02 = popen("wc", "w");
while(fgets(buffer, sizeof(buffer), fp01))
{
fputs(buffer, fp02);
}
pclose(fp01);
pclose(fp02);
처럼 코드를 짜면 되는데 '|'를 두개 이상 사용 할 경우 ( ls | grep one | wc 라고 입력을 하였다하면..)
어떤 식으로 짜야 할지 모르겠습니다. 제가 시도 한 것은
fp01 = popen("ls", "r");
fp02 = popen("grep one", "w");
fp03 = popen("wc", "w");
while(fgets(buffer, sizeof(buffer), fp01))
{
fputs(buffer, fp02);
}
while(fgets(buffer, sizeof(buffer), fp02))
{
fputs(buffer, fp03);
}
pclose(fp01);
pclose(fp02);
pclose(fp03);
처럼 코딩을 하였지만 fp02가 화면에 출력하기 때문에 결과가 fp03에 사용 되지 못해서 wc가 동작을 안하더군요.
fp02 = popen("grep one", "w"); 의 결과를 화면이 아닌 다음 파이프(fp03 = popen("wc", "w");)에
보내게고 싶은데 어떻게 해야 하나요?
댓글 달기