【发布时间】:2021-02-20 23:14:58
【问题描述】:
另一个问题How to read/write from/to file using Go? 在评论中涉及安全关闭文件描述符。
请注意,这些示例并未检查从 fo.Close()。来自 Linux 手册页 close(2):不检查返回 close() 的值是一种常见但仍然很严肃的编程 错误。以前的写入很可能出错(2) 操作首先在最后的 close() 中报告。不检查 关闭文件时的返回值可能会导致数据无声丢失。 这在 NFS 和磁盘配额中尤其明显。 – 尼克 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)
}
}()
我想将此错误作为一个值而不是恐慌。
【问题讨论】:
标签: go