首頁 >後端開發 >Golang >在 Golang 中附加到日誌檔案時如何修復「錯誤檔案描述符」錯誤?

在 Golang 中附加到日誌檔案時如何修復「錯誤檔案描述符」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-11 02:02:02372瀏覽

How to Fix

Golang:附加到日誌檔案時解決「錯誤檔案描述子」錯誤

嘗試附加到Go 程式中的日誌檔案時,一些開發人員遇到“錯誤的文件描述符”錯誤。儘管確保文件存在並具有適當的權限,但問題仍然存在。

分析與解決方案

進一步調查顯示,錯誤是由於缺少 O_WRONLY 標誌而產生的在 OpenFile 函數呼叫中。預設情況下,取得的檔案描述符是唯讀的。

要修正此問題,請將 O_WRONLY 標誌新增至 os.OpenFile 函數呼叫。以下是修正後的程式碼:

if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil {
    /*[...]*/
}

如 Linux open 函數手冊頁所述,必須指定下列存取模式之一:O_RDONLY、O_WRONLY 或 O_RDWR。這些標誌分別表示唯讀、唯寫或讀/寫存取。在這種情況下,單獨使用 O_APPEND 會產生唯讀檔案描述符,從而導致錯誤。新增 O_WRONLY 標誌可確保檔案描述符為只寫。

以上是在 Golang 中附加到日誌檔案時如何修復「錯誤檔案描述符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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