반응형
표준 입출력 함수(printf, scanf, fputc, fgetc 등)을 통해 데이터를 입출력하는 경우
데이터들은 운영체제가 제공하는 메모리 버퍼를 중간에 통과하게 된다.
메모리 버퍼는 데이터들이 임시로 저장되는 공간이라고 할 수 있다.
물건을 나를 때 하나씩 손으로 들고가는것보다, 수레에 실어 한꺼번에 옮기는게 나은 것 처럼 버퍼는 데이터 전송을 효율적으로 가능하게 해준다.
fflush() - 버퍼 비우기
예를 들어 출력버퍼가 다 차서 자동으로 비워지는걸 기다리지 않고
임의로 버퍼에 저장된 데이터를 목적지로 이동시킨 다음(출력) 버퍼를 비우려면 fflash() 함수를 사용하면 된다.
fflush(stdout); // 인자로 받은 스트림의 버퍼를 비운다
이 함수는 파일을 대상으로도 호출이 가능하기 때문에
인자가 파일의 스트림일 경우 버퍼에 저장되어있던 데이터들을 파일에 기록하는게 가능하다.
반응형