read API가 많이 헷갈립니다

미해결질문
유영재 프로필

snprintf(buf, sizeof(buf), "this is msg from sock_stream");

buf에 저렇게 저장해서 보내면 받는 쪽에서 read로 받을텐데

read API를 자세히 보면 EOF를 만났을 때 0을 리턴한다는데 실제로는 저 버퍼에는 EOF라는 -1이 들어가지 않고, 널문자로 마무리하는데 어떻게 EOF를 인식하는거죠? 자동으로 들어가는건가요?

ProgCoach4U 프로필
ProgCoach4U 5달 전

데이터를 전송하는 과정에서 EOF는 우리가 버퍼에 설정해서 넣어주는 것이 아닙니다. stdin이나 어떤 소켓에 대해 모든 데이터를 다 읽어서 더 이상 읽을 데이터가 없을 때 커널이 EOF 상태가 됐다고 알려준다고 이해하시는 것이 좋을 것 같습니다. 

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스