입출력 함수들을 이해하기 전에 버퍼와 스트림을 간단하게 알아봅시다.
fwrite, fread, fgets. 이 셋의 공통점은 무엇일까요? 의 설명에서 보면, 공통적으로 stream 이라는 것이 들어가 있어요. 아. 듣기만 해도 어려워 보입니다. 그리고 stream에 대해서, 공식 문서의 io library에 대한 링크 를 보면, 아래와 같은 문구가 있다는 것을 알 수 있습니다. 우리가 scanf 함수로, "abcde" 라는 것을 입력받았다고 해 봅시다.
https://codingdog.tistory.com/entry/%EC%9E%85%EC%B6%9C%EB%A0%A5-%ED%95%A8%EC%88%98%EB%93%A4%EC%9D%84-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%A0%84%EC%97%90-%EB%B2%84%ED%8D%BC%EC%99%80-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%9D%84-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4