프로 세 스 간 통신 2
유명한 파 이 프 는 장치 파일 입 니 다. FIFO 는 파이프 와 다른 점 이 있 습 니 다. FIFO 의 파일 형식 으로 파일 시스템 에 저 장 된 경로 이름 을 제공 합 니 다. 프로 세 스 가 FIFO 를 만 드 는 프로 세 스 와 친연 관계 가 없 더 라 도 이 경 로 를 방문 할 수 있 으 면 FIFO 를 통 해 서로 통신 할 수 있 습 니 다. FIFO (First In First Out)항상 선진 적 인 선 출 원칙 에 따라 일 하고 첫 번 째 로 기 록 된 데 이 터 는 먼저 파이프 에서 읽 습 니 다.
유명한 파이프 생 성 및 읽 기와 쓰기
1. 셸 에서 서로 유명한 파 이 프 를 만 듭 니 다.
셸 에서 mknod 나 mkfifo 명령 을 사용 할 수 있 습 니 다. 예 를 들 어 mknod 명령 으로 유명한 파 이 프 를 만 들 수 있 습 니 다.
mknod namedpipe
2. 프로그램 에서 시스템 함 수 를 사용 하여 유명한 파 이 프 를 만 듭 니 다.
유명한 파 이 프 를 만 드 는 시스템 함수 1. mknod 2. mkfifo 두 함 수 는 모두 헤더 파일 sys/stat. h 에 정의 되 어 있 습 니 다. 호출 에 성공 하여 0 을 되 돌려 주 었 습 니 다. 실패 되 었 습 니 다 - 1. 함수 원형:
#include
#include
int mknod(const char *path, mode_t mod, dev_t dev);
int mkfifo(const char *path, mode_t mod);
path: 만 든 유명한 파이프 의 전체 경로 이름 mod: 만 든 유명한 파이프 모드 입 니 다. 액세스 권한 dev: 장치 값 을 가리 키 며, 이 값 은 파일 이 만 든 종류 에 달 려 있 습 니 다. 장치 파일 을 만 들 때 만 사 용 됩 니 다.
mknod 함수 로 유명한 파 이 프 를 만 듭 니 다.
umask(0);
if (mknod ("/tmp/fifo",S_IFIFO | 0666, 0) == -1)
{
perror("mknod error!");
exit(1);
}
mkfifo 함수 로 만 들 기
umask(0);
if (mkfifo ("/tmp/fifo",S_IFIFO | 0666) == -1)
{
perror("mkf error!");
exit(1);
}
유명한 파 이 프 를 사용 할 때 는 먼저 open () 을 호출 하여 열 어야 합 니 다. 유명한 파 이 프 는 하 드 디스크 에 존재 하 는 파일 이기 때 문 입 니 다. open () 을 호출 하여 유명한 파 이 프 를 여 는 프로 세 스 가 막 힐 수 있 습 니 다. 읽 기 전용 (O RDONLY) 으로 열 면 open () 을 호출 합 니 다.함수 의 프로 세 스 는 쓰기 자가 파 이 프 를 열 때 까지 막 힐 것 입 니 다. 쓰기 방식 (O WRONLY) 으로 만 열 면 읽 는 사람 이 파 이 프 를 열 때 까지 막 힐 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바이너리 파일cat 또는tail, 터미널 디코딩 시 처리 방법cat으로 바이너리 파일을 보려고 할 때 코드가 엉망이 되어 식은땀이 났다. 웹에서 스크롤된 정보의 처리 방법과alias의 설정을 요약합니다. reset 명령을 사용하여 터미널을 재설정합니다.이렇게 하면 고치지 못하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.