[OS] pipe

Shadis·2022년 5월 3일

OS

목록 보기
2/2

pipe란

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

pipe 생성

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

return : 성공시 0, 실패시 -1

fd[2] : file descriptor을 담을 size 2의 배열이 필요.
각각의 프로세스에 제공한 fd를 이용하여 pipe에 읽고 쓰기.

파이프에서 읽어오기

	#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
HGU 20 김민석

0개의 댓글