ディスク コミット定数
Microsoft 固有の仕様 →
#include <stdio.h>
解説
これらの Microsoft 固有の定数は、開いているファイルに関連付けられているバッファーがオペレーティング システム バッファーやディスクにフラッシュするかどうかを指定します。 モードは文字への読み取り/書き込みアクセス ("r"、"w"、"a"、"r+"、"w+"、"a+") の型が含まれます。
ディスクにコミット モードは次のとおりです。:
c
ディスクに指定したバッファーに書き込まれていない内容を書き込みます。 このコミットにディスクの機能は fflush または _flushall 関数の明示的な呼び出しでのみ実行されます。 このモードは、機密データを処理する場合に便利です。 データは、オペレーティング システムのバッファーに達したことを fflush または _flushallのの呼び出しにとって得られたら、たとえば、プログラムが終了します。 ただし、ファイルを開く c オプションと、データはディスクにオペレーティング システムが終了した場合は、これを行うことがあります。n
オペレーティング システムのバッファーに指定したバッファーに書き込まれていない内容を書き込みます。 オペレーティング システムがデータをキャッシュし、ディスクに書き込む最適な時間を確認できます。 多くの状況では、この動作は効率的なプログラムの動作になります。 ただし、データの保持を重視 (Bank トランザクションまたは航空券情報など) c オプションを使用することを検討してください。 n モードは既定です。注意
c と n オプションは ANSI 互換が必要な場合は fopenの ANSI 規格の一部ではなく、Microsoft 拡張機能、使用しないでください。
既存のコードのディスクのコミット機能を使用する
fflush への既定で、または呼び出し _flushall ライブラリ関数は、オペレーティング システムによって保持されるバッファーにデータを書き込みます。 オペレーティング システムは、実際にディスクにデータを書き込む最適なタイミングを決定します。 ランタイム ライブラリのディスクのコミット機能、重要なデータがオペレーティング システムのバッファーにではなく、ディスクに直接書き込むことを確認できるようになります。 既存のプログラムでそれを書き換えずに COMMODE.OBJ とオブジェクト ファイルをリンクすることで、この機能を持たせることができます。
生成された実行可能ファイルには、fflush の呼び出しはディスクにバッファーの内容を直接記述、_flushall の呼び出しはディスクにすべてのバッファーの内容を書き込みます。 これらの関数は、COMMODE.OBJ の影響を受けるのみです。
END Microsoft 固有の仕様