#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
다음은 read() 함수에 대해 살펴보겠습니다.
Read from a file descriptor
▪ 데이터가 수신(다른 socket으로부터 보낼 때)될 때까지 대기합니다.
▪ file descriptor fd(socket)에서 buf 에서 시작하여 buffer로 bytes 수를 세려고 시도합니다.
▪ Return value
• Success : 읽은 bytes 수가 반환되고, file position이 이 숫자만큼 향상됩니다. - 얼마나 읽었느냐에 따라 값이 달라집니다.
「EOF(End of File, EOF)는 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음」
• Zero : EOF(indicates end of file) = connection close • Error : -1
▪ Example
while (read_len = read(sock, &message[idx++], 1))
{
if (read_len == -1)
{
error_handling("read() error!");
break;
}
str_len += read_len;
}