리눅스데브코스 [7주차 - 2]<파이프와 FIFO>

심우열·2023년 6월 4일
0

1. 프로세스간 통신

1. 통신

  • 프로세스간 데이터 통신

2. 동기화

  • 프로세스간 동기화 맞추는 방법

3. 시그널

  • 동기화 또는 정보 전달

2. 통신 방법

1. 데이터 전송 방법

  • 바이트 스트림
    -> 파이프와 FIFO
  • 메시지

2. 공유 메모리

  • 시스템 V 공유 메모리
  • POSIX 공유 메모리
  • 메모리 매핑

3. 파이프

  • 프로세스간 통신을 위한 기법
    ls | wc -l

1. 파이프 생성

#include <unistd.h>
int pipe(int filedes[2]);
returns 0 on success, -1 on error
  • pipe() 시스템 콜은 두개의 FD를 생성
    -> 첫번쨰는 read를 위한 FD
    -> 두번째는 write를 위한 FD

4. FIFO

  • fifo는 파일로 동작
  • 따라서 fifo를 위한 파일이 생성됨

1. FIFO 생성

c 코드

#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
returns 0 on success, or -1 ion error

쉘 명령어

mkfifo [-m mode] pathname

2. FIFO 와 tee

mkfifo myfifo
wc -l < myfifo &
ls -l | tee myfifo | sort -k5n
  • tee는 T자 관과 같은 형태로 두 곳으로 보내줄때 사용
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글