Go ログ ルーチンでの「不正なファイル記述子」問題の修正
ログ ファイルへの追加中に「不正なファイル記述子」エラーが発生した場合Go ルーチン内では、根本的な原因を調査することが重要です。このエラーは、ファイル記述子が無効であるか、意図した操作に対して不適切であることを示唆しています。
この特定のケースでは、ログ ファイルを開くときに適切なフラグの指定を怠ったことが問題の原因です。デフォルトでは、Go の os.OpenFile 関数はファイルを読み取り専用モードで開くため、ファイルに書き込もうとすると「不正なファイル記述子」エラーが発生します。
解決策は、OS に O_WRONLY フラグを追加することです。 OpenFile 呼び出し。このフラグは、ファイルを書き込み用に開く必要があることを示し、取得したファイル記述子が書き込み操作に対して有効であることを保証します。修正されたコードは次のとおりです:
if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { /*[...]*/ }
O_WRONLY フラグを組み込むことにより、Go ルーチンは、「不正なファイル記述子」エラーが発生することなく、書き込み用にログ ファイルを正常に開き、ログ メッセージを追加できます。
以上がGo ログ記録ルーチンで「不正なファイル記述子」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。