Windows版のInterstage Application ServerのCORBAワークユニットにおいて、出力先のファイルにデータが書き込まれません。
- Windowsで運用しているCORBAワークユニットにおいて、stdoutファイル、stderrファイルにデータ出力していますが、出力先のファイルにデータが書き込まれません。原因と対処方法を教えてください。
- [原因]
OSの標準入出力ライブラリの仕様により、標準出力および標準エラー出力に出力したデータは一度標準入出力ライブラリにバッファリングされるためです。[対処方法]
バッファリングされたデータを確実にstdout、stderrファイルに出力させるためには標準出力および標準エラー出力に対してフラッシュを行ってください。例えばC言語の場合は、fflush(stdout)、fflush(stderr)を発行してください。フラッシュを行わない場合は標準入出力ライブラリによってバッファリングされたデータがフラッシュされるまでstdout、stderrファイルにデータが出力されません。
ただし、アプリケーションがJavaおよびCOBOLの場合、stdoutファイルおよびstderrファイルは作成されますが、ファイルにデータは出力されません。
また、C++言語で入出力ストリーム(cout, cerr)を使用してデータ出力を行う場合、標準C++ iostreamライブラリを使用してください。この場合、<iostream>などの拡張子.hが付いてないヘッダファイルを使用します。標準C++ iostreamライブラリについてはMSDNなどのMicrosoft Corporationから公開されている情報を参照してください。
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 技術サポート |