이러한 함수는 단일 문자에서 대형 데이터 구조체에 이르기까지 다양한 크기 및 형식의 데이터를 처리합니다. 또한 버퍼링을 제공하여 성능을 향상시킬 수 있습니다. 스트림 버퍼의 기본 크기는 4K입니다. 이러한 루틴은 런타임 라이브러리 루틴에 의해 생성된 버퍼에만 영향을 주며 운영 체제에서 생성된 버퍼에는 영향을 주지 않습니다.
스트림 I/O 루틴
| 루틴에서 반환된 값 | 사용할 용어 |
|---|---|
clearerr, clearerr_s |
스트림 오류 표시기를 지웁니다. |
fclose |
스트림을 닫습니다. |
_fcloseall |
stdin, stdout및 stderr을 제외하고 열려 있는 모든 스트림을 닫습니다. |
_fdopen, wfdopen |
열려 있는 파일의 파일 설명자에 스트림을 연결합니다. |
feof |
스트림에서 파일의 끝을 테스트합니다. |
ferror |
스트림에서 오류를 테스트합니다. |
fflush |
스트림을 버퍼 또는 스토리지 디바이스로 플러시합니다. |
fgetc, fgetwc |
스트림에서 문자를 읽습니다( getc 및 getwc의 함수 버전). |
_fgetchar, _fgetwchar |
stdin 에서 문자를 읽습니다( getchar 및 getwchar의 함수 버전). |
fgetpos |
스트림 위치 표시기를 가져옵니다. |
fgets, fgetws |
스트림에서 문자열을 읽습니다. |
_fileno |
스트림과 연결된 파일 설명자를 가져옵니다. |
_flushall |
모든 스트림을 버퍼 또는 스토리지 디바이스로 플러시합니다. |
fopen, _wfopen, fopen_s_wfopen_s |
스트림을 엽니다. |
fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s_fwprintf_s_l |
스트림에 형식이 지정된 데이터를 씁니다. |
fputc, fputwc |
스트림에 문자를 씁니다( putc 및 putwc의 함수 버전). |
_fputchar, _fputwchar |
stdout 에 문자를 씁니다( putchar 및 putwchar의 함수 버전). |
fputs, fputws |
스트림에 문자열을 씁니다. |
fread |
스트림에서 형식이 지정되지 않은 데이터를 읽습니다. |
freopen, _wfreopen, freopen_s_wfreopen_s |
새 파일 또는 디바이스에 FILE 스트림 포인터를 다시 할당합니다. |
fscanf, fwscanf, fscanf_s, _fscanf_s_l, fwscanf_s_fwscanf_s_l |
스트림에서 형식이 지정된 데이터를 읽습니다. |
fseek, _fseeki64 |
파일 위치를 지정된 위치로 이동합니다. |
fsetpos |
스트림 위치 표시기를 설정합니다. |
_fsopen, _wfsopen |
파일 공유를 사용한 스트림을 엽니다. |
ftell, _ftelli64 |
현재 파일 위치를 가져옵니다. |
fwrite |
스트림에 형식이 지정되지 않은 데이터 항목을 씁니다. |
getc, getwc |
스트림에서 문자를 읽습니다( fgetc 및 fgetwc의 매크로 버전). |
getchar, getwchar |
stdin 에서 문자를 읽습니다( fgetchar 및 fgetwchar의 매크로 버전). |
_getmaxstdio |
스트림 I/O 수준에서 허용되는 동시에 열리는 파일 수를 반환합니다. |
gets_s, _getws_s |
stdin에서 줄을 읽습니다. |
_getw |
스트림에서 이진 int 를 읽습니다. |
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s_wprintf_s_l |
stdout에 형식이 지정된 데이터를 씁니다. |
putc, putwc |
스트림에 문자를 씁니다( fputc 및 fputwc의 매크로 버전). |
putchar, putwchar |
stdout 에 문자를 씁니다( fputchar 및 fputwchar의 매크로 버전). |
puts, _putws |
스트림에 줄을 씁니다. |
_putw |
스트림에 이진 int 를 씁니다. |
rewind |
파일 위치를 스트림의 시작 부분으로 이동합니다. |
_rmtmp |
tmpfile
|
scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s_wscanf_s_l |
stdin에서 형식이 지정된 데이터를 읽습니다. |
setbuf |
스트림 버퍼링을 제어합니다. |
_setmaxstdio |
스트림 I/O 수준에서 동시에 열려 있는 파일 수의 최대값을 설정합니다. |
setvbuf |
스트림 버퍼링 및 버퍼 크기를 제어합니다. |
_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s_snwprintf_s_l |
문자열에 지정된 길이의 형식이 지정된 데이터를 씁니다. |
_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s_snwscanf_s_l |
표준 입력 스트림에서 지정된 길이의 형식이 지정된 데이터를 읽습니다. |
sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s_swprintf_s_l |
문자열에 형식이 지정된 데이터를 씁니다. |
sscanf, swscanf, sscanf_s_sscanf_s_l, swscanf_s, _swscanf_s_l |
문자열에서 형식이 지정된 데이터를 읽습니다. |
_tempnam, _wtempnam |
지정된 디렉터리에 임시 파일 이름을 생성합니다. |
tmpfile, tmpfile_s |
임시 파일을 만듭니다. |
tmpnam, _wtmpnam, tmpnam_s_wtmpnam_s |
임시 파일 이름을 생성합니다. |
ungetc, ungetwc |
스트림으로 문자를 다시 푸시합니다. |
_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s_vcwprintf_s_l |
콘솔에 형식이 지정된 데이터를 씁니다. |
vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s_vfwprintf_s_l |
스트림에 형식이 지정된 데이터를 씁니다. |
vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s_vwprintf_s_l |
stdout에 형식이 지정된 데이터를 씁니다. |
_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s_vsnwprintf_s_l |
버퍼에 지정된 길이의 형식이 지정된 데이터를 씁니다. |
vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s_vswprintf_s_l |
버퍼에 형식이 지정된 데이터를 씁니다. |
프로그램 실행이 시작되면 시작 코드가 자동으로 여러 스트림( stdin이 가리키는 표준 입력, stdout이 가리키는 표준 출력 및 stderr이 가리키는 표준 오류)을 엽니다. 이러한 스트림은 기본적으로 콘솔(키보드 및 화면)으로 전송됩니다.
freopen , stdin또는 stdout을 디스크 파일 또는 디바이스로 리디렉션하려면 stderr 을 사용합니다.
스트림 루틴을 사용하여 열린 파일은 기본적으로 버퍼링됩니다. 및 stdout 함수는 stderr 꽉 찼을 때마다 또는 문자 디바이스에 쓰는 경우 각 라이브러리 호출 후에 플러시됩니다. 프로그램이 비정상적으로 종료되면 출력 버퍼가 플러시되지 않아 데이터 손실이 발생할 수 있습니다. 지정된 파일과 연결된 버퍼가 운영 체제로 플러시되거나 열려 있는 모든 버퍼가 플러시되는지 확인하거나 fflush 사용합니다_flushall. 운영 체제는 데이터를 디스크에 쓰기 전에 캐시할 수 있습니다. 디스크에 커밋 기능을 사용하면 시스템 오류가 발생하는 경우 플러시된 버퍼 내용이 손실되지 않습니다.
버퍼 내용을 디스크에 커밋하는 방법에는 다음 두 가지가 있습니다.
- COMMODE.OBJ 파일에 연결하여 전역 커밋 플래그를 설정합니다. 전역 플래그의 기본 설정은
n("커밋 안 함")입니다. -
c또는fopen을 사용하여 모드 플래그를_fdopen로 설정합니다.
c 또는 n 플래그를 사용하여 구체적으로 열린 파일은 전역 커밋/커밋 안 함 플래그 상태에 관계없이 플래그에 따라 동작합니다.
프로그램이 스트림을 명시적으로 닫지 않으면 프로그램이 종료되면 스트림이 자동으로 닫힙니다. 그러나 한 번에 열려 있을 수 있는 스트림 수가 제한되므로 프로그램이 작업을 마치면 스트림을 닫아야 합니다. 이 제한에 대한 자세한 내용은 참조 _setmaxstdio 하세요.
fflush 또는 파일 위치 지정 함수(fseek, fsetpos또는 rewind)에 대한 중간 호출을 사용해야만 입력이 출력을 직접 따를 수 있습니다. 입력 작업이 파일의 끝에 도달하면 파일 위치 지정 함수에 대한 중간 호출 없이 입력을 출력할 수 있습니다.