Pipe
int pipe(int filedes[2]);
- filedes[0]: 읽기용 fd
- filedes[1]: 쓰기용 fd
- lseek 사용하지 못함. FIFO 형식으로 동작
- 부모자식 간에만 사용
- pipe에 읽을 내용이 없을 경우 내용이 쓰여질 때까지 block된다. 쓰기용 fd에 SIGPIPE 전달됨
- SIGPIPE 시그널에 대한 핸들러는 디폴트로 terminate
- write할 때 pipe가 가득 찼을 경우 공간이 생길 때까지 block 된다.
자기자신과 파이프 연결

부모 자식간에 파이프 연결

- child는 쓰기용 fd
- parent는 읽기용 fd
- 동기화 과정에 문제가 발생할 수 있어 사용하지 않는 pipe는 닫아주고 실행해야 함
안전한 부모 자식 간의 파이프
