다음을 통해 공유


스트림 I/O

이러한 기능은 데이터를 다양한 크기 및 포멧에서 단일 문자 형식을 대형 데이터 구조로 처리합니다. 또한 성능을 향상 시킬 수 있는 버퍼링 기능을 제공합니다. 스트림 버퍼의 기본 크기는 4K입니다. 이러한 루틴은 런타임 라이브러리 루틴에서 만든 버퍼에만 적용되고, 운영 체제에서 만든 버퍼에는 영향을 주지 않습니다.

스트림 I/O 루틴

루틴

기능

해당 .NET Framework

clearerr, clearerr_s

스트림에 대한 명확한 오류 표시기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

fclose

스트림 닫기

System::IO::Stream::Close, System::IO::BinaryReader::Close, System::IO::BinaryWriter::Close, System::IO::TextReader::Close, System::IO::TextWriter::Close, System::IO::StringReader::Close, System::IO::StringWriter::Close, System::IO::StreamReader::Close, System::IO::StreamWriter::Close

_fcloseall

stdin, stdout, 그리고 stderr 을 제외한 모든 열려 있는 스트림 닫기

System::IO::Stream::Close, System::IO::BinaryReader::Close, System::IO::BinaryWriter::Close, System::IO::TextReader::Close, System::IO::TextWriter::Close, System::IO::StringReader::Close, System::IO::StringWriter::Close, System::IO::StreamReader::Close, System::IO::StreamWriter::Close

_fdopen, wfdopen

열린 파일의 파일 설명자를 사용하여 스트림에 연결

System::IO::FileStream::FileStream

feof

스트림에서 파일의 끝에 대한 테스트

System::IO::FileStream::Read

ferror

스트림에서 오류 테스트

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

fflush

버퍼 또는 저장 장치에 스트림을 플러시

System::IO::FileStream::Flush

fgetc, fgetwc

스트림에서 문자를 읽기 (getc 및 getwc 버전의 함수)

System::IO::StreamReader::Read.

_fgetchar, _fgetwchar

stdin 으로 부터 문자 읽기 (getchar 및 getwchar 버전의 함수)

System::Console::Read

fgetpos

스트림의 위치 표시기를 가져오기

System::IO::FileStream::Position

fgets, fgetws

스트림에서 문자열을 읽기

System::IO::StreamReader::ReadLine, System::IO::TextReader::ReadBlock

_fileno

스트림과 연결된 파일 설명자를 가져오기

System::IO::FileStream::Handle

_flushall

버퍼 또는 저장 장치에 모든 스트림을 플러시

System::IO::FileStream::Flush, System::IO::StreamWriter::Flush, System::IO::TextWriter::Flush, System::IO::BinaryWriter::Flush

fopen, _wfopen, fopen_s, _wfopen_s

스트림 열기

System::IO::File::Open

fprintf, _fprintf_l, fwprintf, _fwprintf_l, fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

스트림에 서식이 지정된 데이터를 씁니다.

System::IO::StreamWriter::Write

fputc, fputwc

스트림에 문자 쓰기 (putc 및 putwc 버전의 함수)

System::IO::StreamWriter::Write

_fputchar, _fputwchar

stdout 문자 쓰기 (putchar 및 putwchar 버전의 함수)

System::Console::Write

fputs, fputws

스트림에 문자열 쓰기

System::IO::StreamWriter::Write

fread

스트림에서 서식 없는 데이터를 읽기

System::IO::FileStream::Read

freopen, _wfreopen, freopen_s, _wfreopen_s

새 파일 또는 장치로 FILE 스트림 포인터를 다시 할당

System::IO::File::Open

fscanf, fwscanf,fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

스트림에서 서식이 지정된 데이터 읽기

System::IO::StreamReader::ReadLine; 또한 System::Double::Parse 와 같은 Parse 메서드도 참고하십시오.

fseek, _fseeki64

파일 위치를 주어진 위치로 이동합니다.

System::IO::FileStream::Position, System::IO::FileStream::Seek

fsetpos

스트림의 위치 표시기를 설정하기

System::IO::FileStream::Position

_fsopen, _wfsopen

파일 공유와 함께 스트림을 열기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

ftell, _ftelli64

현재 파일 위치 가져오기

System::IO::FileStream::Position

fwrite

서식이 지정되지 않은 데이터 스트림 항목 작성

System::IO::FileStream::Write

getc, getwc

스트림에서 문자를 읽기 (fgetc 및 fgetwc 버전의 매크로)

System::IO::StreamReader::Read.

getchar, getwchar

stdin 으로 부터 문자 읽기 (fgetchar 및 fgetwchar 버전의 매크로)

System::Console::Read

_getmaxstdio

스트림 I/O 수준에서 허용되는 동시에 열린 파일의 수를 반환합니다.

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

gets, getws, gets_s, _getws_s

stdin 으로 부터 줄 읽기

System::Console::Read

_getw

스트림에서 이진 int 파일 읽기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

printf, _printf_l, wprintf, _wprintf_l,printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

stdout 에 서식이 지정된 데이터 쓰기

System::Console::Write

putc, putwc

스트림에 문자 쓰기 (fputc 및 fputwc 버전의 매크로)

System::IO::StreamWriter::Write

putchar, putwchar

stdout 문자 쓰기 (fputchar 및 fputwchar 버전의 매크로)

System::Console::Write

puts, _putws

스트림에 줄 쓰기

System::Console::Write

_putw

스트림에 이진 int쓰기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

rewind

파일 위치를 스트림의 시작 부분으로 이동

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

_rmtmp

tmpfile 에 의해 만들어진 임시 파일 제거

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

scanf, _scanf_l, wscanf, _wscanf_l,scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

stdin 으로 부터 서식이 지정된 데이터 읽기

System::Console::ReadLine; 또한 System::Double::Parse 와 같은 Parse 메서드를 참조하십시오.

setbuf

스트림 버퍼링 제어

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

_setmaxstdio

스트림 I/O 레벨에서 동시에 열리는 파일의 최대 숫자를 설정합니다.

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

setvbuf

스트림 버퍼링 및 버퍼 크기를 제어

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

_snprintf, _snwprintf, _snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

지정된 길이의 서식이 지정된 데이터를 문자열에 쓰기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

_snscanf, _snwscanf, _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

표준 입력 스트림에서 지정된 길이의 데이터 서식 읽기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

sprintf, swprintf, sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

문자열에 서식이 지정된 데이터 쓰기

System::String::Format

sscanf, swscanf, sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l

문자열에서 형식 데이터를 읽기

Parse 메서드(예: System::Double::Parse)를 참조하십시오.

_tempnam, _wtempnam

임시 파일 이름을 생성할 디렉터리 지정

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

tmpfile, tmpfile_s

임시 파일 만들기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

tmpnam, _wtmpnam, tmpnam_s, _wtmpnam_s

임시 파일 이름을 생성하기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

ungetc, ungetwc

스트림에 문자 다시 누르기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

_vcprintf, _vcwprintf, _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l

서식이 지정된 데이터를 콘솔에 작성합니다.

System::Console::Write

vfprintf, vfwprintf, vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l

스트림에 서식이 지정된 데이터를 씁니다.

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

vprintf, vwprintf, vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l

stdout 에 서식이 지정된 데이터 쓰기

System::Console::Write

_vsnprintf, _vsnwprintf, vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

지정된 길이의 서식이 지정된 데이터를 버퍼에 쓰기

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

vsprintf, vswprintf, vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

버퍼에 서식이 지정된 데이터 쓰기

System::String::Format

프로그램이 시작될때, 시작 코드가 표준 입력 (stdin 에 의해 포인팅 된), 표준 출력 (stdout 에 의해 포인팅 된), 그리고 표준 오류 (stderr 에 의해 포인팅 된) 와 같은 여러 스트림을 자동으로 엽니다. 기본적으로 이러한 스트림은 콘솔 (키보드 및 화면)로 이동 합니다. freopen 을 사용하여 stdin, stdout, 또는 stderr 을 디스크 파일 또는 장치로 이동시킵니다.

스트림 루틴을 사용하여 연 파일은 기본적으로 버퍼링 됩니다. stdout 및 stderr 기능은 각 라이브러리 호출 후 문자 장치에 쓰는 경우 또는 꽉 찬 경우 플러시 되도록 합니다. 프로그램이 비정상적으로 종료되면 출력 버퍼는 플러시될 수 없고, 데이터의 손실이 일어나게 됩니다. fflush 또는 _flushall 를 사용하여 디스크에 쓰기 전에 데이터를 캐시할 수 있는 운영 체제에 모든 열린 버퍼 또는 지정 된 파일과 관련된 버퍼가 플러시 되도록 확인합니다. 디스크에 커밋 기능은 플러시된 버퍼 내용이 시스템 오류 발생 시 손실 되지 않도록 보장 합니다.

버퍼 내용을 디스크에 커밋하는 두 가지 방법이 있습니다.

  • COMMODE.OBJ 파일에 링크하여 커밋 전역 플래그를 설정 합니다. 글로벌 플래그의 기본 설정은 "no-commit"인 n 입니다.

  • 모드 플래그를 fopen 또는 _fdopen 와 함께 c 로 설정합니다.

c 또는 n 와 함께 열어 둔 모든 파일은 글로벌 commit/no-commit 플래그의 상태에 관계 없이 플래그에 따라 동작합니다.

프로그램이 스트림을 명시적으로 닫지 않는 경우, 스트림은 프로그램이 종료되면 자동으로 닫힙니다. 그러나, 한 번에 열 수 있는 스트림의 횟수가 제한되 있듯이 프로그램이 끝날때 스트림을 닫아야 합니다. 이 제한에 대한 자세한 정보는 _setmaxstdio 을 참조하십시오.

입력은 fflush 또는 파일 위치 지정 함수 (fseek, fsetpos, 또는 rewind) 의 호출으로만 출력을 직접 따를수 있습니다. 입력 작업이 파일의 마지막을 마주할 경우, 출력은 파일 위치 지정 함수의 호출에 관계 없이 입력을 따를수 있습니다.

참고 항목

참조

입력 및 출력

범주별 런타임 루틴