ストリーム入出力

ストリーム入出力関数は、1 つの文字列から大きなデータ構造体まで、異なるサイズや形式のデータを処理するときに使用します。 また、処理はバッファリングされるため、パフォーマンスを向上できます。 既定では、ストリーム バッファーのサイズは 4 K です。 ストリーム入出力ルーチンはランタイム ライブラリ ルーチンの作成したバッファーだけに影響します。オペレーティング システムが作成したバッファーには影響を与えません。

ストリーム入出力ルーチン

ルーチン

使用方法

同等の .NET Framework 関数

clearerrclearerr_s

ストリームに対するエラー インジケーターをクリアします。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

fclose

ストリームを閉じます。

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

_fcloseall

stdin、stdout、および stderr 以外の開いているすべてのストリームを閉じます。

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

_fdopen、wfdopen

開いているファイルのファイル記述子にストリームを関連付けます。

System::IO::FileStream::FileStream

feof

ストリームについて EOF (EOF: End of file) をテストします。

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::ReadLineSystem::IO::TextReader::ReadBlock

_fileno

ストリームに関連付けられているファイル記述子を取得します。

System::IO::FileStream::Handle

_flushall

バッファーまたは記憶装置へのすべてのストリームをフラッシュします。

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

fopen、_wfopenfopen_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、_wfreopenfreopen_s、_wfreopen_s

FILE 型ストリームのポインターを新しいファイルやデバイスに再度割り当てます。

System::IO::File::Open

fscanf、fwscanffscanf_s、_fscanf_s_l、fwscanf_s、_fwscanf_s_l

書式付きデータをストリームから読み出します。

System::IO::StreamReader::ReadLineSystem::Double::Parse などの Parse メソッドも参照してください。

fseek、_fseeki64

ファイル位置を指定された位置へ移動します。

System::IO::FileStream::PositionSystem::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

ストリーム入出力レベルで同時に開くことのできるファイルの数を返します。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

gets、getwsgets_s、_getws_s

標準入力 (stdin) から 1 行読み込みます。

System::Console::Read

_getw

2 進数の 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

ストリームに 1 行書き込みます。

System::Console::Write

_putw

2 進数の 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::ReadLineSystem::Double::Parse などの Parse メソッドも参照してください。

setbuf

ストリーム バッファーを制御します。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

_setmaxstdio

ストリーム入出力レベルの同時開いているファイル数の最大値を設定します。

該当なし 標準 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、swprintfsprintf_s、_sprintf_s_l、swprintf_s、_swprintf_s_l

書式付きデータを文字列に書き込みます。

System::String::Format

sscanf、swscanfsscanf_s、_sscanf_s_l、swscanf_s、_swscanf_s_l

書式付きデータを文字列から読み込みます。

System::Double::Parse などの Parse メソッドを参照してください。

_tempnam、_wtempnam

指定されたディレクトリに一時ファイルの名前を生成します。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

tmpfiletmpfile_s

一時ファイルを作成します。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

tmpnam、_wtmpnamtmpnam_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、vfwprintfvfprintf_s、_vfprintf_s_l、vfwprintf_s、_vfwprintf_s_l

書式付きデータをストリームに書き込みます。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

vprintf、vwprintfvprintf_s、_vprintf_s_l、vwprintf_s、_vwprintf_s_l

書式付きデータを stdout に書き込みます。

System::Console::Write

_vsnprintf、_vsnwprintfvsnprintf_s、_vsnprintf_s、_vsnprintf_s_l、_vsnwprintf_s、_vsnwprintf_s_l

指定された長さの書式付きデータをバッファーに書き込みます。

該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。

vsprintf、vswprintfvsprintf_s、_vsprintf_s_l、vswprintf_s、_vswprintf_s_l

書式付きデータをバッファーに書き込みます。

System::String::Format

プログラムの実行を開始すると、スタートアップ コードは自動的に複数のストリームを開きます。標準入力 (指すstdin)、標準出力 (指すstdout)、および標準エラー (指すstderr)。 既定では、開かれたストリームは、コンソール (キーボードおよび画面) に送信されます。 stdin、stdout、または stderr をディスク ファイルまたはデバイスにリダイレクトするには、freopen を使用します。

既定では、ストリーム入出力ルーチンを使用して開いたファイルは、バッファリングされます。 stdout 関数と stderr 関数がフラッシュされるのは、満杯になった場合か、キャラクター デバイスに書き込む場合はライブラリ呼び出しの後です。 プログラムが異常終了すると、出力バッファーがフラッシュされずに、データが失われる場合があります。 指定されたファイルに関連付けられているバッファーまたは開いているすべてのバッファーを確実にオペレーティング システムにフラッシュするには、fflush 関数か _flushall 関数を使用します。データをディスクに書き込む前にキャッシュできます。 ディスク コミット機能によって、フラッシュされたバッファーの内容はシステム障害の場合にも失われなくなります。

バッファーの内容をディスクにコミットするには、次の 2 つの方法があります。

  • ファイル COMMODE.OBJ とリンクして、グローバル コミット フラグを設定します。 既定では、グローバル フラグの設定は "no-commit" (コミットなし) を意味する n です。

  • fopen または _fdopen を使用して、モード フラグを c に設定します。

c フラグまたは n フラグを指定して開いたファイルは、グローバル コミット フラグの状態にかかわらず、指定されたフラグに応じて動作します。

プログラムで明示的にストリームを閉じなくても、プログラムの終了時にストリームは自動的に閉じます。 ただし、同時に開くことができるストリームの数には制限があるため、プログラムが使用を終了したストリームは閉じておく必要があります。 ストリーム数の制限については、「_setmaxstdio」を参照してください。

出力操作の後に fflush やファイル ポジション操作関数 (fseek、fsetpos、または rewind) を呼び出した場合だけ、その後すぐに入力操作を行うことができます。 入力操作がファイル終端を読み込んでいれば、ファイル ポジション操作関数を呼び出さなくても、続けて出力操作を行うことができます。

参照

参照

入出力

カテゴリ別ランタイム ルーチン