Skip to content

07. Input Output {SP}

README#

모든 IO는 커널코드이다. 우리는 커널의 존재여부도 눈치채지 못했던 이유는 standard IO라고 불리우는 래퍼 함수들만 써와서 그래.

  • fread, fgets, printf 등등은 모두 <stdio.h> 안에 들어있는 IO 함수들이다. 그 자체로 모든 기능을 담당한 것이 아닌, 내부적으로 시스템 콜을 호출하여 입출력을 담당하고 있었다. 얘네들은 file descriptor 대신 추상화된 객체인 FILE을 사용하여 파일을 식별한다.
  • read, write, puts와 같은 함수들이 시스템 콜인데, 얘네들은 모두 파일 디스크립터 fd를 통해 파일을 식별한다.
  • standard io는 버퍼링이란 기능을 제공하여 너무 자주 시스템 콜이 호출되는 것을 막는다. -> 오버헤드를 줄일 수 있음.