"저수준 입출력함수는 1바이트 단위로 입출력을 하고 고수준 입출력함수는 버퍼를 통해 출력한다."
버퍼를 사용하므로 고수준 입출력함수가 더 빠르다는건데
이 말의 의미가 정확히 이해가 되지않아서 문의 드립니다.
1. 시스템콜 호출 횟수 차이인가?
예를들어 1000 바이트를 파일에 출력하는 경우.
저수준 입출력은 write 함수를 1000번 호출하고
고수준 입출력은 fwrite 함수를 한번만 호출하여 1000바이트를 출력한다 라고 이해되는데
결국 시스템콜 호출 횟수의 차이때문에 성능 차이가 있는건가요?
2. 시스템콜은 왜 1바이트씩 처리하나?
시스템콜은 버퍼를 거치지않고 파일에 직접 입출력한다라는 의미가
커널 메모리 버퍼도 사용하지 않고 cpu 가 파일에 직접 입출력하기 때문에 1바이트 단위로만 처리한다는건가요?
파일을 열어놓고 1000바이트를 쓰고 파일을 닫으면 시스템콜을 한번만 호출해도되는거 아닌가요?
이런것들을 이해하려면 어떤 내용들을 봐야하는지 궁금하네요