XL Fortran for AIX V8.1.1
ユーザーズ・ガイド
パフォーマンスを向上させるために、XL Fortran 実行時ライブラリーには専用のバッファーとそのバッファーの専用の処理方法があります。つまり、混合言語プログラムは、異なる言語から同一ファイル上で I/O 操作を自由に混合することはできないということです。そのような場合にデータ保全性を保つためには、以下のようにします。
- ファイルの位置が重要ではない場合には、プログラムの Fortran 内部でファイルをオープンして明示的にクローズしてから、別の言語で作成されているサブプログラムから、そのファイルに対して I/O 操作を行ってください。
- Fortran でファイルをオープンし、そのオープンしたファイルを別の言語から操作するには、flush_ プロシージャーを呼び出してそのファイル用のバッファーを保管してから、getfd プロシージャーを使用して対応するファイル記述子を見つけて、それを Fortran 以外の言語のサブプログラムに渡してください。
flush_ プロシージャーを呼び出す代わりに、
buffering 実行時オプションを使用して、
I/O 操作でのバッファリングを使用不能にすることができます。
buffering=disable_preconn を指定すると、
XL Fortran は事前接続された装置のバッファリングを使用不能にします。
buffering=disable_all を指定すると、
XL Fortran はすべての論理装置のバッファリングを使用不能にします。
- 注:
- flush_ を呼び出してファイルのバッファーをフラッシュした後、Fortran 以外の処理の完了時にファイルをクローズする以外は、プログラムの Fortran 部分からそのファイルに何も行わないでください。
- WRITE ステートメントを含んでいる XL Fortran サブプログラムが Fortran 以外のメインプログラムから呼び出された場合は、データ・ファイルを明示的に CLOSE するか、または XL Fortran サブプログラムの flush_ サブルーチンを使用して、必ずバッファーがフラッシュされるようにしてください。あるいは、buffering 実行時オプションを使用して、
I/O 操作でのバッファリングを使用不能にすることができます。
- 関連情報:
- FLUSH_ または GETFD プロシージャーの詳細は、「XL Fortran for AIX ランゲージ・リファレンス 」の『サービス・プロシージャーおよびユーティリティー・プロシージャー』の章を参照してください。
buffering 実行時オプションの詳細については、
実行時オプションの設定を参照してください。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]