[C/C++] pipe

김민석·2022년 5월 3일
0

C/C++

목록 보기
1/7

pipe란

프로세스들 사이의 양방향 데이터 전송을 위한 일종의 데이터 통로.

사용방법

#include <unistd.h>
int pipe(int fd[2]);

- pipe 생성

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 : 파이프에 쓸 데이터의 크기

profile
명품개발자지망생

0개의 댓글