実行時関数:オペレーティング・システムに強制的に指定した装置に関連するファイルに対する中断中の書き込み操作をファイルの物理装置に実行させます。
モジュール:USE DFLIB
形式
result = COMMITQQ (unit)
unit
(入力) INTEGER(4)。物理装置にキャッシュ・メモリーの内容を書き出すためのファイルに対応する Fortran 論理装置。
結果
結果の型は LOGICAL(4) です。開かれた装置番号が指定されると,.TRUE. が返され,書き込まれていない記録 (もしあれば) が書き込まれます。開かれていない装置番号が指定されると,.FALSE. が返されます。
物理装置上のファイルに書き出されるデータは,しばしば初期的にオペレーティング・システムのバッファに書き出され,オペレーティング・システムの準備ができた時に装置に書き出されます。バッファ中のデータは,ファイルが閉じられた時に,自動的にディスクに書き出されます。しかしながら,プログラムやコンピュータがデータがバッファから転送される前にクラッシュした場合,データは失われることがあります。COMMITQQ は,物理装置上のファイルのためにキャッシュされたデータをその装置に直ちに書き出すようにオペレーティング・システムに命令します。これは,ファイルのフラッシュと呼ばれます。
COMMITQQ は,プログラムの重要な点でデータの紛失が起きないようにしたい場合に有用です。たとえば,長時間の計算が終了し,その結果をファイルに書き出した後,ユーザーがデータ項目のグループを入力した後,同じファイルを共有する複数のプログラムを使用する場合などです。ディスクへのファイルのフラッシュは,遅延なしにファイルを閉じ,再度開くことができるという利点があります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
USE DFLIB INTEGER unit / 10 / INTEGER len CHARACTER(80) stuff OPEN(unit, FILE='COMMITQQ.TST', ACCESS='Sequential') DO WHILE (.TRUE.) WRITE (*, '(A, \)') 'Enter some data (Hit RETURN to & exit): ' len = GETSTRQQ (stuff) IF (len .EQ. 0) EXIT WRITE (unit, *) stuff IF (.NOT. COMMITQQ(unit)) WRITE (*,*) 'Failed' END DO CLOSE (unit) END