pipe란
프로세스들 사이의 양방향 데이터 전송을 위한 일종의 데이터 통로.
사용방법
#include <unistd.h>
int pipe(int fd[2]);
return : 성공시 0, 실패시 -1
fd[2] : file descriptor을 담을 size 2의 배열이 필요.
각각의 프로세스에 제공한 fd를 이용하여 pipe에 읽고 쓰기.
(file descriptor란? : https://velog.io/@ymail837/UNIX-file-descriptor)
#include <unistd.h>
ssize_t read(int fd, void *buffer, size_t BUFFER_SIZE);
return : 성공시 읽은 byte, 실패시 -1
fd : file descriptor
buffer : 파이프에서 읽은 데이터를 담을 공간
BUFFER_SIZE : 파이프에서 읽어올 데이터 크기
#include <unistd.h>
ssize_t write(int fd, void *buffer, size_t BUFFER_SIZE);
return : 성공시 쓴 byte, 실패시 -1
fd : file descriptor
buffer : 파이프에 쓸 데이터
BUFFER_SIZE : 파이프에 쓸 데이터의 크기