반응형
스트림 (stream)
직역하면 흐르다 인데, 원래는 물이 흐르는 시냇물을 의미한다.
컴퓨터에서는 데이터의 흐름으로 말한다. 즉, 데이터가 바이트이기에 바이트의 흐름이다.
흐르기 위해서는 통로가 필요하기때문에 통로라고도 부른다.
컴퓨터에서 스트림 : 데이터의 이동 통로 혹은 바이트의 흐름 |
linux 에서 스트림은 network 를 연결할 때, device 를 연결할 때 process 끼리 소통할 때 사용된다.
linux 는 파일로 모든 것이 이루어져 있기 때문에 파일에 관한 시스템 콜인 open, close, read, write 가 stream 을 다루는 함수가 된다. open 함수는 fd 값을 반환시키는데, fd가 바로 스트림이 된다. (fd 가 파일을 연결시켜주는 통로가 되기 때문에)
int open(const char* path, int flags, mode_t mode)
return 값이 int 형인 fd 가 된다. 즉 스트림을 만들어주는 함수가 이 open 함수가 되는 것이다.
그렇게 fd (stream) 을 받았으면 그 스트림에 데이터를 흘려 보낸다. 어떻게? write 함수로
ssize_t write(int fd, const *buf, size_t bufsize)
이게 write (스트림, 보낼 데이터, 보낼 데이터의 크기) 가 되는 것이다.
받는 쪽에서는 read 로 읽는다.
ssize_t read (int fd, void *buf, size_t bufsize)
read (스트림, 읽을 데이터, 읽을 데이터의 크기) 가 된다.
close의 경우 스트림을 닫는 역할을 한다.
int close(int fd)
반응형
'LINUX > 리눅스 시스템 프로그래밍' 카테고리의 다른 글
[리눅스 시스템 프로그래밍] 시스템콜(system call) 과 API(application Programming Interface) (0) | 2021.02.13 |
---|