Linux系统,应用层使用Qt将数据以文本格式写进u盘,但是拔出u盘,文件会丢失。U盘挂载路径/media/sda1,程序里是写死的。如果将系统关机或者关闭上层应用软件,再拔出u盘,文件是存在的(QT版本:qt4.8.5)。这种情况应该怎么解决呢?
PS:程序里使用了close()关闭了打开的文件。在串口里通过cp命令将保存在u盘下的文件复制到nfs共享的文件下,在电脑端的linux系统里查看,文件是正确且存在的。一旦在上层应用软件运行阶段,拔出U盘文件就会丢失。
Linux系统,应用层使用Qt将数据以文本格式写进u盘,但是拔出u盘,文件会丢失。U盘挂载路径/media/sda1,程序里是写死的。如果将系统关机或者关闭上层应用软件,再拔出u盘,文件是存在的(QT版本:qt4.8.5)。这种情况应该怎么解决呢?
PS:程序里使用了close()关闭了打开的文件。在串口里通过cp命令将保存在u盘下的文件复制到nfs共享的文件下,在电脑端的linux系统里查看,文件是正确且存在的。一旦在上层应用软件运行阶段,拔出U盘文件就会丢失。
串口里cp命令成功之后,再执行一个 sync,试试
Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。
Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。