Go ログ記録ルーチンで「不正なファイル記述子」エラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-11-23 10:44:11
オリジナル
187 人が閲覧しました

Why Am I Getting a

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート