익명 파이프

컴퓨터 과학에서 익명 파이프(anonymous pipe)는 단방향 프로세스 간 통신(IPC)에 사용될 수 있는 단방향 선입 선출 통신 채널이다. 구현은 종종 운영체제의 파일 입출력 서브시스템에 통합된다. 일반적으로 부모 프로그램이 익명 파이프를 열고, 파이프의 다른 끝을 상속하는 새 프로세스를 생성하거나, 여러 개의 새 프로세스를 생성하여 파이프라인으로 배열한다.

전이중 (양방향) 통신은 일반적으로 두 개의 익명 파이프를 필요로 한다.

파이프라인은 유닉스 및 도스를 비롯한 대부분의 인기 있는 운영체제에서 지원되며, 많은 셸에서 "|" 문자를 사용하여 생성된다.

 유닉스 

파이프라인은 많은 전통적인 유닉스 애플리케이션의 중요한 부분이며, 대부분의 유닉스 계열 운영체제에 잘 통합되어 지원된다. 파이프는 pipe 시스템 호출을 사용하여 생성되며, 이는 새 파이프를 생성하고 파이프의 읽기 및 쓰기 끝을 참조하는 한 쌍의 파일 서술자를 반환한다. 많은 전통적인 유닉스 프로그램은 파이프와 함께 작동하도록 필터로 설계되었다.

 마이크로소프트 윈도우 
윈도우 API의 다른 많은 장치 IO 및 IPC 기능과 마찬가지로, 익명 파이프는 IO 기능에 특정한 API 함수를 사용하여 생성 및 구성된다. 이 경우 CreatePipe는 파이프의 읽기 및 쓰기 끝에 대한 별도의 핸들을 가진 익명 파이프를 생성하는 데 사용된다. 파이프에 대한 읽기 및 쓰기 IO 작업은 표준 IO 기능 API 함수 ReadFile 및 WriteFile로 수행된다.

마이크로소프트 윈도우에서 익명 파이프에 대한 읽기 및 쓰기는 항상 블로킹된다. 즉, 빈 파이프에서 읽기는 최소한 한 바이트를 사용할 수 있거나 파이프의 쓰기 핸들이 닫힌 결과로 파일 끝이 수신될 때까지 호출 스레드가 기다리게 한다. 마찬가지로, 가득 찬 파이프에 대한 쓰기는 기록되는 데이터를 저장할 공간이 생길 때까지 호출 스레드가 기다리게 한다. 읽기는 요청된 바이트 수보다 적은 수의 바이트로 반환될 수 있다 (짧은 읽기라고도 함).

새 프로세스는 생성 프로세스에서 익명 파이프에 대한 핸들을 상속할 수 있다.

 같이 보기 
 명명된 파이프
 파이프 (유닉스)

 각주 
 Hart, Johnson M. Windows System Programming, Third Edition. Addison-Wesley, 2005. 


 내용주 

분류:프로세스 간 통신