read함수와 buffer

nhwang·2022년 2월 8일
0

read : 버퍼에 읽어들인 것을 저장.
리드에서 버퍼를 쓰는 개념을 공부하다 가지 의문이 들었었음.
ㄴ> 파일의 크기가 100이라 할 때, 버퍼의 사이즈가 1일때도 어떻게 읽을 수 있는가?
내가 정한 버퍼는 그냥 일시적인 저장소의 느낌이지 100을 다 담는 게 아닌 셈.

파일에서 읽어들인 문자열을 하나씩 확인하기 위해 3번 인자를 1로 주고, 처리.
리드함수는 하나씩 읽고 버퍼를 0인덱스부터 사이즈만큼 저장할 뿐이다. (계속 덮어쓰는 것으로 보임)

두번째 의문
buffer[index++]을 했을 때 하나의 문자열만 나오고 있으나, printf("%p",buffer)를 하면 하나씩 잘 뽑아내고 있었음.
ㄴ> 버퍼의 주소값이 이동하는게 아닌가 하는 생각을 하였으나, 사실은 버퍼의 주소값은 이동하지 않는다.

리드 함수 내부적으로 오픈되어 있는 상태일때 오프셋이 지속적으로 이동한다.

fd에 해당하는 오프셋이 이동하는 것이지 버퍼가 이동하는 것이 아님.

profile
42Seoul

0개의 댓글