07. Input Output {SP}
README#
모든 IO는 커널코드이다. 우리는 커널의 존재여부도 눈치채지 못했던 이유는 standard IO라고 불리우는 래퍼 함수들만 써와서 그래.
fread
,fgets
,printf
등등은 모두<stdio.h>
안에 들어있는 IO 함수들이다. 그 자체로 모든 기능을 담당한 것이 아닌, 내부적으로 시스템 콜을 호출하여 입출력을 담당하고 있었다. 얘네들은 file descriptor 대신 추상화된 객체인FILE
을 사용하여 파일을 식별한다.read
,write
,puts
와 같은 함수들이 시스템 콜인데, 얘네들은 모두 파일 디스크립터fd
를 통해 파일을 식별한다.- standard io는 버퍼링이란 기능을 제공하여 너무 자주 시스템 콜이 호출되는 것을 막는다. -> 오버헤드를 줄일 수 있음.