Jes*_*sta 17
您会注意到os.File没有.Flush(),因为它不需要缓存,因为它没有缓冲.写入它是直接系统调用来写入文件.
当您的程序退出时(即使它崩溃),它打开的所有文件都将由操作系统自动关闭,文件系统会在更改时将更改写入磁盘(有时在程序退出后几分钟) .
调用os.File.Sync()将调用fsync()系统调用,这将强制文件系统将其缓冲区刷新到磁盘.即使系统断电或操作系统崩溃,这也可以保证您的数据在磁盘上并且是持久的.
你不需要调用.Sync()
Pio*_*zmo 15
看到这里.File.Sync()是syscall到fsync.您应该能够在该名称下找到更多.
请记住,fsync这与fflush不同,并且在关闭前不会执行.
您通常不需要调用它.无论如何,在一段时间之后,如果在此期间没有电源故障,该文件将被写入磁盘.