read API가 많이 헷갈립니다

미해결질문
유영재 프로필

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

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

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

ProgCoach4U 프로필
ProgCoach4U 2달 전

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