네트워크 프로그래밍 공부 중 질문이 있어 고수님들께 질문 올립니다.
프로세스간의 통신 방법 중 Pipe 부분을 공부하고 있습니다.
여기 설명으로는 ps -aux | grep httpd | wc -l를 예로 들면서
ps의 표준 출력을 grep의 표준 입력으로, grep의 표준출력을 wc의 표준 입력으로 연결한다라고 되어있고
Pipe는 부모 자식 프로세스 간에만 통신이 가능하다고 하고 fifo를 통해서 다른 프로세스간의 통신을 한다라고 되어있습니다.
ps -aux | grep httpd | wc -l에서 ps, grep, wc는 /bin에 있는 서로 다른 프로그램을 실행시킨 프로세스 들인데
위 명령어를 치면 리눅스 운영체제에서 ps를 부모로 하고 exec 함수를 통해 grep이라는 자식을, grep은 exec를 통해 wc를 실행시킨 구조로 되어있다는건가요?
근데 또 그럼 이해가 안가는게 exec 함수라면 ps만 실행되고 끝나버릴텐데 말이죠...