【发布时间】:2023-03-07 12:37:01
【问题描述】:
fsync 和 syncfs 有什么区别?
int syncfs(int fd);
int fsync(int fd);
fync 的手册页说明如下:
fsync() 传输(“刷新”)所有修改过的内核数据(即修改过的缓冲区缓存页) for) 文件描述符 fd 引用的文件到磁盘设备(或其他永久存储) 年龄设备),以便即使在系统崩溃或 被重新启动。这包括写入或刷新磁盘缓存(如果存在)。通话 阻塞,直到设备报告传输已完成。它还刷新元数据 与文件相关的信息(参见 stat(2))。
syncfs 的手册页说明如下:
sync() 导致对文件元数据和数据的所有缓冲修改写入底层- 文件系统。
syncfs() 类似于 sync(),但只同步包含由 打开文件描述符 fd。
对我来说,两者似乎是平等的。他们正在同步文件描述符和相关元数据引用的文件。
【问题讨论】:
标签: c linux filesystems posix unistd.h