我正在将一个文件(我们称之为xyz.bin
)写入 USB 闪存驱动器...闪存驱动器安装在路径下:/media/myUsb ...
为了防止数据丢失,我正在执行如下同步命令:
sync -f /media/myUsb
然后,我使用其他命令分离/删除闪存驱动器,如下所示:安全移除
问题:
使用此闪存驱动器的团队告诉我,有时文件会损坏...我正在调试我的应用程序以丢弃任何内容,但我担心命令是否sync
正确完成,或者我只是误解了sync man page
.
编辑
我带来了有关正在执行的进程的其他详细信息(如果有帮助)...使用 JAVA:
- 我将文件复制到附加的随身碟或闪存驱动器。
- 我称操作系统 commnad 同步为:(
sync -f /media/myUsb
使用过程API - 如果命令返回 OK(我使用以下命令等待它:进程.waitFor());然后,我执行
udisksctl unmount -b <usbMountPoint>
... 如果命令返回 OK(再次,我等待它......),那么我执行
udisksctl power-off -b <usbDevice>
如果命令返回 OK(再次,我等待它......),那么我认为写入和分离成功!因此,我指示操作员移除随身碟或闪存驱动器...
然后,另一个团队收到随身碟并尝试读取写入的文件...有时,一切正常...其他时候,他们说文件已损坏,他们无法读取该文件...
现在,我正在做不同的测试来找出问题所在......但是,我的疑问是:执行的操作系统命令是否正确执行,或者我只是调用了一些根本没有意义的东西?