Golang のファイル記述子の問題: 「不正なファイル記述子」が解決されました
Go ルーチン内でログ ファイルに追加しようとすると、開発者は「不正なファイル記述子」エラーが発生する可能性があります。この問題は、ファイルが存在し、適切な権限を持っている場合に特に厄介になる可能性があります。
最初は、複数のルーチンが同時にファイルを開こうとすると問題が発生するように見えるかもしれません。ただし、これを防ぐためにミューテックスを実装した後でも、同じエラーが発生します。
解決策は、ファイルを開くステートメントに O_WRONLY フラグを追加することです。デフォルトでは、開く操作ではファイルが読み取り専用モードで開きます。書き込み専用フラグを明示的に指定しないと、ファイルに書き込もうとすると「不正なファイル記述子」エラーが発生して失敗します。
次に、O_WRONLY フラグを含むコード スニペットの修正版を示します。
if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { panic(err) }
この変更により、ファイルは追加権限と書き込み専用権限の両方で開かれるようになり、「不正なファイル記述子」エラーが解決され、ログ ファイルへの正常な書き込みが可能になります。
以上がGo ログ ファイルに追加すると「不正なファイル記述子」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。