➊ 파이프로 전달할 메시지를 기록한다.
➋ 파이프에서 메시지를 읽어온다.
➌ 익명 파이프를 생성한다. 이 익명 파이프에 두 개의 스레드가 연결돼 메시지를 읽고 쓴다.
두 스레드와 익명 파이프를 생성했다. Writer 스레드가 파이프를 통해 Reader 스레드에 메시지를 전달한다. 코드를 실행한 결과는 다음과 같다.
Writer: 고무 오리를 보내는 중...
Reader: 데이터를 읽는 중
Reader: 전달받은 데이터: 고무 오리
노트
pipe()와 fork()는 유닉스 셸이나 배시 스크립트에서 흔히 볼 수 있는 파이프 연산자(|)의 기능을 제공하는 실체이기도 하다.
명명 파이프는 FIFO(First-In, First-Out) 방식으로 작업 간 데이터를 전달한다. 바꿔 말하면 요청을 받은 순서대로 처리한다는 뜻이다.