K 개발자

이름 있는 파이프 본문

유닉스(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 : 접근 권한 지정

'유닉스(Unix) > 시스템 프로그래밍' 카테고리의 다른 글

메시지 큐  (0) 2021.08.19
시스템 V IPC의 공통 요소  (0) 2021.08.19
이름 없는 파이프  (0) 2021.08.19
sigaction 함수의 활용  (0) 2021.08.19
시그널 집합  (0) 2021.08.19
Comments