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