파이프는 FIFO(첫 번째 처음 에서 처음)를 동작하고 파이프는 큐 데이터 구조처럼 동작합니다. 읽기 및 쓰기 의 크기는 여기에 일치할 필요가 없습니다. 한 번에 512바이트를 쓸 수 있지만 파이프에서 한 번에 1바이트만 읽을 수 있습니다. 앞에서 설명한 것처럼 파이프라인이 설정되면 파일 설명자가 일반 파일에 대한 설명자처럼 처리될 수 있습니다. 여기서이 코드에서 읽기/쓰기를 완료 한 후, 대신 프로세스를 종료 하는 부모와 자식 블록 및 프로그램 중단 이유입니다. 이는 시스템 호출을 읽는 것이 요청하는 만큼의 데이터 또는 파이프가 가지고 있는 만큼의 데이터를 가져오기 때문에 발생합니다. 개념적으로 파이프는 한 프로세스의 표준 출력이 다른 프로세스의 표준 입력이 되도록 두 프로세스 간의 연결입니다. UNIX 운영 체제에서 파이프는 관련 프로세스(프로세스 간 통신) 간의 통신에 유용합니다. 부모가 자식으로부터 데이터를 수신하려면 fd1을 닫고 자식이 fd0을 닫아야 합니다. 부모가 자식에게 데이터를 보내려면 fd0을 닫고 자식이 fd1을 닫아야 합니다.

설명자는 부모와 자식 간에 공유되므로 항상 신경 쓰지 않는 파이프의 끝을 닫아야 합니다. 기술적 인 참고로 파이프의 불필요한 끝이 명시적으로 닫히지 않으면 EOF가 반환되지 않습니다. C의 배열 이름은 첫 번째 멤버에 대한 포인터로 디케이터로 전환됩니다. 위의 fd는 &fd[0]와 동일합니다. 파이프라인을 설정하면 C 프로그래밍 언어로 `파이프라인`을 만드는 것이 단순한 셸 예제보다 좀 더 관여할 수 있습니다. C를 사용하여 간단한 파이프를 작성하려면 pipe() 시스템 호출을 사용합니다. 두 정수의 배열인 단일 인수를 사용하며 성공하면 배열에는 파이프라인에 사용할 두 개의 새 파일 설명자가 포함됩니다. 파이프를 만든 후 프로세스는 일반적으로 새 프로세스를 생성합니다(자식이 열린 파일 설명자 상속 기억). 어떤 프로세스에서 포크를 사용할 때 파일 설명자는 자식 프로세스와 상위 프로세스 전반에 걸쳐 열려 있습니다. 파이프를 만든 후 포크를 호출하면 부모와 자식이 파이프를 통해 통신할 수 있습니다. man7.org > tlpi > 코드 > 온라인 > 파이프 / simple_pipe.c 내부 부모 프로세스 : 먼저 첫 번째 파이프 (fd1[0])의 읽기 끝을 닫은 다음 파이프의 끝을 작성하지만 문자열을 작성합니다 (fd1[1]).