콘솔 입출력
✒️ 2025-05-15 15:53 내용 수정
수제비 2024 정보처리기사 필기 5판 1권의 내용을 정리
TCPSchool의 내용을 정리
- C에선 콘솔 장치의 입출력도 파일처럼 다뤄진다.
- C의 입출력 참고.
버퍼(buffer)
- 표준 입출력 함수를 사용할 때 사용되는 임시 메모리 공간이다.
- Java에서 보조 스트림은 버퍼를 사용하여 여러 데이터를 한 번에 담아 처리하여 속도가 빠른 스트림으로, 바이트, 문자 기반 보조 스트림(
BufferedStream)이 있었다.
- Java에서 보조 스트림은 버퍼를 사용하여 여러 데이터를 한 번에 담아 처리하여 속도가 빠른 스트림으로, 바이트, 문자 기반 보조 스트림(
- 버퍼는 입력 장치로부터 바로 프로그램으로 데이터를 전달 하는 것이 아닌 중간에서 데이터를 묶어서 한 번에 전달한다.
- 출력의 경우도 프로그램으로부터 문자를 받아 중간에서 데이터를 묶어 출력 장치로 한 번에 전달한다.
- 이로 인해 전송 시간이 적게 걸리며, 중간에 사용자가 문자를 수정할 수 있다.
- 그러나 빠른 반응이 요구되는 프로그램들은 이런 버퍼로 인해 지연이 발생될 수 있어 상황에 따라 사용해야 한다.
- 버퍼링의 방식
- 완전 버퍼링(fully buffered) : 버퍼가 가득 차면 버퍼 안의 내용을 목적지로 보낸다.
- 주로 파일 입출력에서 사용된다.
- 라인 버퍼링(line-buffered) : 입력된 문자 중 개행 문자가 나타날 때마다 버퍼 안의 내용을 목적지로 보낸다.
- 주로 키보드 입력에서 사용된다.
- 완전 버퍼링(fully buffered) : 버퍼가 가득 차면 버퍼 안의 내용을 목적지로 보낸다.
fflush()
- 인수로 전달된 스트림에 연결된 버퍼를 비워준다.
- 인수로는 출력 스트림을 사용하며, 출력 버퍼 안에 있는 데이터를 즉시 목적지로 보내준다.
- Null 포인터가 전달되면 해당 프로그램에 앞서 정의한 모든 스트림에 대한 버퍼를 전부 비운다.
- 버퍼를 성공적으로 비우면
0을 반환하고, 실패하면EOF를 반환한다.
#include <stoio.h>
int fflush(FILE *stream);