- 초기 unix 시스템의 IPC 메커니즘
- 두 프로세스가 통신하는 파이프의 역할을 한다.
pipe issues
- 통신이 unidirectional / bidirectional 한지
- 양방향일 경우 half-duplex(not simultaneous)인지 full-duplex(simultaneous)인지
- 통신하는 프로세스들 사이에 child-parent와 같은 관계가 성립 해야 하는지
- 네트워크 위에서 동작할 수 있는지.
two common types of pipes
:
ordinary pipes :
- 파이프를 생성한 프로세스 바깥에서 접근할 수 없다.
- 주로 부모 프로세스가 자식과 통신하기 위해 생성한다.
named pipes :
예제
- pipe()함수로 파이프를 2개 만든다.
- 포크를 한 뒤 부모 프로세스에서 WRITE_END 파이프를 통해 입력값을 쓰고
- 자식 프로세스에서 READ_END 파이프로 읽은 뒤 출력한다.
![](https://velog.velcdn.com/images/dev_mj/post/7eeb3d1e-0325-45b6-9eca-ab3d1fd4cb7d/image.png)
결과는 아래와 같다.
![](https://velog.velcdn.com/images/dev_mj/post/56c1d412-10ff-481a-81a5-bdf10ed0bd94/image.png)