什么时候需要flush一个文件?
我从不这样做,因为我调用 File.Close 并且我认为它会自动刷新,不是吗?
最佳答案
您会注意到 os.File 没有 .Flush() 因为它不需要一个,因为它没有缓冲。写入它是直接写入文件的系统调用。
当你的程序退出时(即使它崩溃了),它打开的所有文件都会被操作系统自动关闭,并且文件系统会在它接近它时将你的更改写入磁盘(有时在你运行后的几分钟内)程序退出)。
调用 os.File.Sync() 将调用 fsync() 系统调用,这将强制文件系统将其缓冲区刷新到磁盘。这将保证您的数据在磁盘上并且是持久的,即使系统关闭或操作系统崩溃。
你不需要调用 .Sync()
关于go - 何时在 Go 中刷新文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862375/