九城q 2021-03-20 15:38 采纳率: 0%
浏览 516

linux系统写文件到u盘,拔出U盘文件丢失,怎么解决?

Linux系统,应用层使用Qt将数据以文本格式写进u盘,但是拔出u盘,文件会丢失。U盘挂载路径/media/sda1,程序里是写死的。如果将系统关机或者关闭上层应用软件,再拔出u盘,文件是存在的(QT版本:qt4.8.5)。这种情况应该怎么解决呢?

PS:程序里使用了close()关闭了打开的文件。在串口里通过cp命令将保存在u盘下的文件复制到nfs共享的文件下,在电脑端的linux系统里查看,文件是正确且存在的。一旦在上层应用软件运行阶段,拔出U盘文件就会丢失。

  • 写回答

1条回答 默认 最新

  • wozaiyizhideng 2021-03-20 17:22
    关注

    串口里cp命令成功之后,再执行一个 sync,试试

     

    Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。

    Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。

    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码