유닉스(Unix)/시스템 프로그래밍
이름 있는 파이프
ddingz
2021. 8. 19. 17:02
이름 있는 파이프
이름 있는 파이프named pipe는 글자 그대로 이름이 붙은 파이프로 모든 프로세스가 이 파이프명을 이용해 통신할 수 있다.
FIFOFirst-In First-Out로 통신하려면 우선 FIFO 특수 파일을 생성하고 파일 입출력 함수를 사용하면 된다.
즉, 한 프로세스가 FIFO로 사용할 특수 파일을 생성하면, 이 파일의 이름을 알고 있는 다른 프로세스가 같은 FIFO를 이용해 통신을 수행할 수 있다.
명령으로 FIFO 파일 생성하기
FIFO·특수 파일 생성 : mknod 명령
mknod 파일명 p
FIFO 파일 생성 : mkfifo 명령
/usr/bin/mkfifo [-m mode] path…
함수로 FIFO 파일 생성하기
특수 파일 생성 : mknod(2)
#include <sys/stat.h>
int mknod(const char *path, mode_t mode, dev_t dev);
// path : 특수 파일을 생성할 경로, mode : 특수 파일의 종류와 접근 권한 지정, dev : 블록/문자 장치 설정값
FIFO 파일 생성 : mkfifo(3)
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *path, mode_t mode);
// path : FIFO 파일을 생성할 경로, mode : 접근 권한 지정