ホームページ > バックエンド開発 > Golang > Golang でログ ファイルに追加するときに発生する「不正なファイル記述子」エラーを修正する方法

Golang でログ ファイルに追加するときに発生する「不正なファイル記述子」エラーを修正する方法

Barbara Streisand
リリース: 2024-11-11 02:02:02
オリジナル
368 人が閲覧しました

How to Fix

Golang: ログ ファイルに追加する際の「不正なファイル記述子」エラーを解決する

Go ルーチン内でログ ファイルに追加しようとしたとき、一部の開発者は「不正なファイル記述子」エラーに遭遇します。ファイルが存在し、適切な権限があることを確認しても、問題は解決しません。

分析と解決策

さらなる調査により、O_WRONLY フラグがないためにエラーが発生していることが判明しました。 OpenFile 関数呼び出し内。デフォルトでは、取得されるファイル記述子は読み取り専用です。

この問題を修正するには、os.OpenFile 関数呼び出しに O_WRONLY フラグを追加します。修正されたコードは次のとおりです。

if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil {
    /*[...]*/
}
ログイン後にコピー

Linux オープン関数のマニュアル ページに記載されているように、アクセス モード O_RDONLY、O_WRONLY、または O_RDWR のいずれかを指定する必要があります。これらのフラグは、それぞれ読み取り専用、書き込み専用、または読み取り/書き込みアクセスを示します。この場合、O_APPEND を単独で使用すると読み取り専用のファイル記述子になり、エラーが発生します。 O_WRONLY フラグを追加すると、書き込み専用のファイル記述子が保証されます。

以上がGolang でログ ファイルに追加するときに発生する「不正なファイル記述子」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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