如何同步特定设备?

如何同步特定设备?

Linux有没有办法访问sync特定设备?

这将用于确保对 USB 拇指驱动器的写入已经发生,而无需等待来自视频处理作业的排队写入在不相关的 RAID 阵列上完成。

如果有一个系统调用/参数组合可以实现这一点,我可能可以编写一个简单的 C 包装器。如果有人知道可以做到这一点的 Ubuntu 软件包,那就更好了。

答案1

你不能同步(2)一个设备,这没有任何意义。您正在同步文件系统(不是安装它的设备)与syncfs或整个页面缓存sync

sync(2) 系统调用被称为同步(1)命令。

(我不知道有任何常用命令执行 a syncfs

但是,您可以使用 Linux 特定的命令刷新文件系统的缓冲区同步文件系统(2)系统调用。因此,编写一个简单的 C 包装器来实现这一点。

对于已打开的文件描述符,你可以使用同步(2)或者fdatasync

请注意,卸载文件系统通常是刷新它。

答案2

考虑使用直接 I/O,这将避免需要sync.某些文件系统可以通过挂载选项 ( ) 强制使用它dio

相关内容