-2

freopenCプログラミング言語の関数を使って追跡しています

  1. 実行される関数
  2. 警告メッセージ
  3. エラーが発生しました

stderrすべてのメッセージを指定されたテキスト ファイルにルーティングします。これは、テストベッド環境では問題なく機能しました。ただし、本番環境では、ログ ファイルを開いたときにメモリ不足の例外が発生しfreopen()、サーバーがクラッシュしました。この問題を解決するにはあなたの助けが必要です。

4

1 に答える 1

2

ロギング コードがリソースをリークしていないことを確認してください。

freopen()あなたが話していると私が想定している関数は、構造体を保持するためにメモリを割り当て、おそらくFILEI/O をバッファリングするための追加のスペースを割り当てます。

ファイルの処理が完了したら、プロセスが終了しない限り、fclose()によって返されたポインターを呼び出す必要がありますfreopen()

もちろん、コード内に他のリソース リークがいくつも存在する可能性があります。コードを見ずにこれを行うのは難しいです。

于 2012-04-26T09:14:16.453 に答える