rename(tmppath, path)不fsync(tmppath_fd)先打电话就可以安全吗?
rename(tmppath, path)
fsync(tmppath_fd)
我希望路径始终指向完整的文件。我主要关心 Ext4 。是否可以在所有将来的Linux内核版本中都保证named()是安全的?
Python中的用法示例:
def store_atomically(path, data): tmppath = path + ".tmp" output = open(tmppath, "wb") output.write(data) output.flush() os.fsync(output.fileno()) # The needed fsync(). output.close() os.rename(tmppath, path)
没有。
查看libeatmydata,以及此演示文稿:
http://www.oscon.com/oscon2008/public/schedule/detail/3172
来自MySql的Stewart Smith。