gpt4 book ai didi

c - 如何同步文件移动到存储?

转载 作者:太空狗 更新时间:2023-10-29 12:31:22 25 4
gpt4 key购买 nike

我在 Linux 环境中使用 C/C++ 系统工作,我正在使用 stdio.h 中可用的 rename() 函数移动文件。

移动后,我需要将其同步到底层存储以使更改永久生效的功能。如果我有一个文件描述符,我将能够使用 fsync() 或 fdatasync()。

有没有一种优雅的方式来做到这一点?或者我必须做这样的事情:

rename(old_path, new_path);
int fd = open(new_path, O_APPEND | O_WRONLY);
fdatasync(fd);
close(fd);

那还能行吗?

最佳答案

可能您正在寻找 void sync(void); 函数。

sync 函数只是将所有修改的 block 缓冲区排队等待写入并返回,它不会等待磁盘写入发生。

sync 函数通常被定期调用(通常每 30 秒一次)系统守护进程,通常称为更新。

保证定期刷新内核的 block 缓冲区。

关于c - 如何同步文件移动到存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com