另一个问题如何使用 Go 读取/写入文件?在评论中安全关闭文件描述符。
请注意,这些示例并未检查 fo.Close() 的错误返回。来自 Linux 手册页 close(2):不检查 close() 的返回值是一个常见但严重的编程错误。上一次 write(2) 操作的错误很有可能在最后的 close() 中首先报告。关闭文件时不检查返回值可能会导致数据无声丢失。这在 NFS 和磁盘配额中尤其明显。– Nick Craig-Wood 2013 年 1 月 25 日 7:12
更新帖子的解决方案使用了恐慌:
// close fo on exit and check for its returned error
defer func() {
if err := fo.Close(); err != nil {
panic(err)
}
}()
我想将此错误作为一个值而不是恐慌。
慕娘9325324
相关分类