首頁  >  文章  >  後端開發  >  為什麼在附加到 Go 日誌檔案時會收到「錯誤檔案描述符」錯誤?

為什麼在附加到 Go 日誌檔案時會收到「錯誤檔案描述符」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-12 04:37:02879瀏覽

Why Am I Getting a

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn