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中文网其他相关文章!