ストリーム入出力
これらの関数は、1 文字から大きなデータ構造に至るまで、さまざまなサイズと形式のデータを処理します。 バッファリングも提供しており、パフォーマンスを向上させることができます。 ストリーム バッファーの既定のサイズは 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 |
ストリーム入出力のレベルで許可されている、同時に開かれたファイルの数を返します。 |
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 |
ストリーム入出力のレベルで同時に開かれるファイルの数の最大値を設定する。 |
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
を使用して、指定したファイルに関連付けられているバッファーがオペレーティング システムにフラッシュされるか、開いているすべてのバッファーがフラッシュされるようにします。 オペレーティング システムは、ディスクに書き込む前にデータをキャッシュできます。 ディスクへのコミット機能により、システム障害が発生した場合にフラッシュされたバッファーの内容が失われないようにします。
バッファーの内容をディスクにコミットする 2 つの方法があります。
ファイル COMMODE.OBJ とリンクして、グローバル コミット フラグを設定します。 グローバル フラグの既定の設定は、
n
("コミットなし") です。モード フラグを
c
またはfopen
で_fdopen
に設定します。
c
または n
フラグで開かれるファイルは、グローバル コミット/コミットなしのフラグの状態にかかわらず、フラグに従って動作します。
プログラムがストリームを明示的に閉じない場合、プログラムの終了時にストリームが自動的に閉じられます。 ただし、一度に開くことのできるストリームの数は限られているため、プログラムがストリームの作業を終了したら、そのストリームを閉じる必要があります。 この制限については、「_setmaxstdio
」を参照してください。
出力の直後に入力を行うには、 fflush
またはファイル ポジショニング関数 (fseek
、 fsetpos
、または rewind
) の呼び出しを間に挟まなければなりません。 入力操作でファイルの末尾が検出された場合は、ファイル配置関数の呼び出しを間違えずに入力の後に出力できます。