궁금해서 구글링하다가 KLDP에 유사한 질문과 답변이 있어서 참고했는데 사실 이해가 그렇게 잘 되지 않아서요.
https://kldp.org/node/2864
답을 달아주신 분의 답변을 보면 fread, fwrite의 경우 중간 버퍼/경유 버퍼(intermediate buffer)가 존재해서 작은 데이터 양이면서 잦은 호출이 발생할 때 read, write보다 더 빠른 속도로 처리를 할 수 있다고 하셨는데요.
이것을 저는 이렇게 이해했습니다. read, write도 버퍼가 존재하며 그 사이즈를 정할 수 있도록 함수의 인자값으로 받죠. fread, fwrite는 라이브러리 함수가 앞의 시스템 함수와 다른 점은 내부적으로 read, write를 사용하면서 또 하나의 버퍼를 생성시켜서 데이터를 다룬다는 것으로 해석했습니다.
그런데 여기서 조금 이해가 되질 않는 부분이 있는데요.