리눅스 pipe 예제

정렬 명령은 텍스트 줄을 사전순또는 숫자로 정렬합니다. 다음 예제는 음식 파일의 줄을 정렬 – C의 배열 이름이 첫 번째 멤버에 대한 포인터로 붕괴 기억하십시오. 위의 fd는 &fd[0]와 동일합니다. 파이프라인을 설정하면 새 자식 프로세스를 포크합니다. 우리는 새 쉘 세션을 열고 이전에 제공 된 ls -al 명령의 출력을 보여주는 명명 된 파이프의 내용을 cat 수 있습니다. 명명된 파이프의 크기가 0이고 “p”라는 지정이 있습니다. C 프로그래밍 언어로 `파이프라인`을 만드는 것은 간단한 셸 예제보다 좀 더 관련이 있을 수 있습니다. C를 사용하여 간단한 파이프를 작성하려면 pipe() 시스템 호출을 사용합니다. 두 정수의 배열인 단일 인수를 사용하며 성공하면 배열에는 파이프라인에 사용할 두 개의 새 파일 설명자가 포함됩니다. 파이프를 만든 후 프로세스는 일반적으로 새 프로세스를 생성합니다(자식이 열린 파일 설명자 상속 기억). 명명된 파이프는 시스템이 실행중이거나 삭제될 때까지 지속될 수 있습니다. FIFO(선차, 선차) 메커니즘을 따르는 특수 파일입니다.

일반 파일처럼 사용할 수 있습니다. 즉, 쓰기, 읽기 및 열거나 닫을 수 있습니다. 명명된 파이프를 만들려면 “깨진 파이프” 메시지가 발행되는지 여부는 ctrl-C가 눌리게 되는 정확한 순간의 이벤트에 따라 달라집니다. 두 번째 고양이가 x를 읽은 경우 ctrl-C를 누르면 두 번째 고양이가 중지되고 pipe1이 닫히고 첫 번째 고양이가 메시지없이 조용히 멈춥니다. 반면, 두 번째 고양이가 x를 쓰기를 기다리는 경우 ctrl-C는 pipe2가 닫히게 하여 첫 번째 고양이가 쓸 수 있고 오류 메시지가 발행됩니다. 이러한 종류의 임의 동작은 “경합 조건”이라고 합니다. 그래서, 다음 번에 리눅스 터미널에서 명령으로 작업 하 고 자신이 명령 사이 데이터를 이동 찾을, 잘하면 파이프 프로세스를 신속 하 고 쉽게 만들 것입니다. 여기에 내가 파일의 긴 목록을 만들고 리눅스 더 많은 명령에 출력을 파이프, 모든 시간을 사용하는 간단한 파이프 라인 명령은 다음과 같습니다 파이프 또는 명명되지 않은 파이프 명령에 대한 구문은 | 두 명령 사이의 문자: 이전에 가상 콘솔을 사용 하지 않은 경우, 기사를 참조 “키보드, 콘솔 및 VT 순항” 존 M. Fisk 11 월에 1996 리눅스 저널.

다음은 배관으로 할 수 있는 일의 종류에 대한 아이디어를 제공하는 몇 가지 예입니다. 배관으로 달성 할 수있는 많은 것들이 있으며 그 중 몇 가지에 불과합니다. 경험과 약간의 창조적 인 생각으로 나는 당신이 당신의 인생을 더 쉽게 하기 위해 배관을 사용하는 더 많은 방법을 찾을 수 있습니다 확신합니다. 긴 디렉터리 목록이 있다고 가정해 보겠습니다. 정렬 된 목록을 쉽게 읽을 수 있도록 하려면 다음과 같이 더 많은 것을 통해 출력을 파이프 – 그리고 여기에 몇 가지 더 흥미로운 C 코드 폴 링 파이프 작업입니다 : https://stackoverflow.com/questions/12444679/how-does-the-poll-c-linux-f …