2 Agosto 2019

리눅스 mkfifo 예제

이전 리눅스 시스템에서 명명 된 파이프는 일반적으로 /etc 디렉토리에 있는 mknod 프로그램에 의해 만들어집니다. 더 현대적인 시스템에서 mkfifo는 표준 유틸리티입니다. mkfifo 프로그램은 하나 이상의 파일 이름을 이 작업에 대한 인수로 가져와 해당 이름으로 파이프를 만듭니다. 예를 들어, 이름 pipe1 으로 명명 된 파이프를 만들려면 명령을 제공: 전에 가상 콘솔을 사용 하지 않은 경우, 기사를 참조 “키보드, 콘솔 및 VT 순항” 11 월에 존 M. Fisk에 의해 1996 리눅스 저널. Bash는 명명된 파이프를 정말 깔끔한 방식으로 사용합니다. 괄호 안에 명령을 둘러싸면 명령은 실제로 “하위 셸”에서 실행됩니다. 즉, 쉘은 자체 복제를 복제하고 클론은 괄호 내의 명령을 해석합니다. 외부 셸은 단일 “명령”만 실행되므로 전체 명령 집합의 출력을 하나의 단위로 리디렉션할 수 있습니다. 예를 들어 명령: UNIX의 또 다른 종류의 “파일”은 “명명된 파이프” 또는 “FIFO”(“선차, 선점”, 즉 큐)입니다. 명명된 파이프는 mkfifo 시스템 호출을 통해 만들어집니다. 명명된 파이프는 파이프 시스템 호출로 작성된 기존 파이프와 매우 유사합니다.

그러나 파이프는 두 개의 파일 설명자를 통해 액세스를 제공하지만 명명된 파이프는 경로의 파일 시스템을 통해 액세스됩니다. FIFO 파일 만들기 FIFO 파일을 만들기 위해 mkfifo를 호출하는 함수가 사용됩니다. pathname에 지정된 pathname이 상대적인 경우 상대 경로 이름에 대해 mkfifo()에서 수행하는 것처럼 호출 프로세스의 현재 작업 디렉토리를 기준으로 하는 것이 아니라 파일 설명자 dirfd에서 참조하는 디렉터리와 비교하여 해석됩니다. 명명 된 파이프는 다른 이름을 보증하기 위해 더 일반적으로 사용되는 유닉스 / 리눅스 파이프에서 충분히 다르지만,하지만 “파이프”정말 그들이 프로세스 간에 데이터를 이동하는 방법의 좋은 이미지를 호출, 그래서 “명명 된 파이프”꽤 잘 맞는. 어쩌면 당신은이 매우 영리한 유닉스 / 리눅스 기능에서 크게 도움이 될 것입니다 작업을 건너 올 것이다. 리눅스와 다른 유니스를 유용하게 만드는 기본 기능 중 하나는 “파이프”입니다. 파이프를 사용하면 서로 함께 작동하도록 명시적으로 설계되지 않고도 별도의 프로세스가 통신할 수 있습니다. 이렇게 하면 함수가 매우 좁아 복잡한 방식으로 결합할 수 있습니다. 이러한 빈 명명된 파이프 중 하나를 살펴보기 전에 한 걸음 뒤로 물러서서 명명된 파이프가 어떻게 설정되는지 살펴보겠습니다. mkfifo라는 명령을 사용합니다. 왜 “FIFO”에 대한 참조? 명명된 파이프는 FIFO 특수 파일이라고도 합니다.

“FIFO”라는 용어는 첫 번째 문자인 첫 번째 문자를 나타냅니다. 아이스크림으로 접시를 채우고 먹기 시작하면 LIFO (마지막 에, 선입선) 기동을할 것입니다. 밀짚을 통해 밀크 셰이크를 빨아 경우, 당신은 FIFO 하나를하고있을 것입니다. 다음은 명명된 파이프를 만드는 예제입니다. mkfifoat () : 미치 Frazier는 에머슨 일렉트릭 (주) 미치에서 임베디드 시스템 프로그래머와 2000 년대 초부터 리눅스 저널의 친구와 기여하고있다 다음과 같은 추가 오류가 발생할 수 있습니다. mkfifo()는 이름 경로 이름으로 FIFO 특수 파일을 만듭니다.

Contact us

Get in touch with us!