ストリーム入出力
ストリーム入出力関数は、1 つの文字列から大きなデータ構造体まで、異なるサイズや形式のデータを処理するときに使用します。 また、処理はバッファリングされるため、パフォーマンスを向上できます。 既定では、ストリーム バッファーのサイズは 4 K です。 ストリーム入出力ルーチンはランタイム ライブラリ ルーチンの作成したバッファーだけに影響します。オペレーティング システムが作成したバッファーには影響を与えません。
ストリーム入出力ルーチン
ルーチン |
使用方法 |
同等の .NET Framework 関数 |
---|---|---|
ストリームに対するエラー インジケーターをクリアします。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
ストリームを閉じます。 |
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 |
|
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 |
|
開いているファイルのファイル記述子にストリームを関連付けます。 |
System::IO::FileStream::FileStream |
|
ストリームについて EOF (EOF: End of file) をテストします。 |
||
ストリームのエラーをテストします。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
バッファーまたは記憶装置に対するストリームをフラッシュします。 |
||
ストリームから文字を読み取ります (getc と getwc の関数バージョン)。 |
||
stdin から文字を読み取ります (getchar と getwchar の関数バージョン)。 |
||
ストリームのポジション インジケーターを取得します。 |
||
ストリームから文字列を読み出します。 |
System::IO::StreamReader::ReadLine、System::IO::TextReader::ReadBlock |
|
ストリームに関連付けられているファイル記述子を取得します。 |
||
バッファーまたは記憶装置へのすべてのストリームをフラッシュします。 |
System::IO::FileStream::Flush、System::IO::StreamWriter::Flush、System::IO::TextWriter::Flush、System::IO::BinaryWriter::Flush |
|
ストリームを開きます。 |
||
fprintf、_fprintf_l、fwprintf、_fwprintf_l, fprintf_s、_fprintf_s_l、fwprintf_s、_fwprintf_s_l |
書式付きデータをストリームに書き込みます。 |
|
文字をストリームに書き込みます (putc と putwc の関数バージョン)。 |
||
文字を stdout に書き込みます (putchar と putwchar の関数バージョン)。 |
||
文字列をストリームに書き込みます。 |
||
書式なしデータをストリームから読み出します。 |
||
FILE 型ストリームのポインターを新しいファイルやデバイスに再度割り当てます。 |
||
書式付きデータをストリームから読み出します。 |
System::IO::StreamReader::ReadLine。System::Double::Parse などの Parse メソッドも参照してください。 |
|
ファイル位置を指定された位置へ移動します。 |
System::IO::FileStream::Position、System::IO::FileStream::Seek |
|
ストリームの位置インジケーターを設定します。 |
||
ストリームをファイル共有状態で開きます。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
現在のファイル位置を取得します。 |
||
書式なしデータ項目をストリームに書き込みます。 |
||
文字をストリームから読み出します (fgetc と fgetwc のマクロ バージョン)。 |
||
stdin から文字を読み取ります (fgetchar と fgetwchar のマクロ バージョン)。 |
||
ストリーム入出力レベルで同時に開くことのできるファイルの数を返します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
標準入力 (stdin) から 1 行読み込みます。 |
||
2 進数の int をストリームから読み込みます。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
printf、_printf_l、wprintf、_wprintf_l,printf_s、_printf_s_l、wprintf_s、_wprintf_s_l |
書式付きデータを stdout に書き込みます。 |
|
文字をストリームに書き込みます (fputc と fputwc のマクロ バージョン)。 |
||
文字を stdout に書き込みます (fputchar と fputwchar のマクロ バージョン)。 |
||
ストリームに 1 行書き込みます。 |
||
2 進数の int をストリームに書き込みます。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
ファイル位置をストリームの先頭に移動します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
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 メソッドも参照してください。 |
ストリーム バッファーを制御します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
ストリーム入出力レベルの同時開いているファイル数の最大値を設定します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
ストリームのバッファリングとバッファー サイズを制御します。 |
該当なし 標準 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::Double::Parse などの Parse メソッドを参照してください。 |
|
指定されたディレクトリに一時ファイルの名前を生成します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
一時ファイルを作成します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
一時ファイルの名前を生成します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
文字をストリームに戻します。 |
該当なし 標準 C 関数を呼び出すには、PInvoke を使用します。 詳細については、「プラットフォーム呼び出しの例」を参照してください。 |
|
_vcprintf、_vcwprintf、_vcprintf_s、_vcprintf_s_l、_vcwprintf_s、_vcwprintf_s_l |
書式付きデータをコンソールに書き込みます。 |
|
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 に書き込みます。 |
|
_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 |
書式付きデータをバッファーに書き込みます。 |
プログラムの実行を開始すると、スタートアップ コードは自動的に複数のストリームを開きます。標準入力 (指す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) を呼び出した場合だけ、その後すぐに入力操作を行うことができます。 入力操作がファイル終端を読み込んでいれば、ファイル ポジション操作関数を呼び出さなくても、続けて出力操作を行うことができます。