求大神赐教,Linux系统写文件异常,文件中包含大量0x00
异常情况1:写的记录文件中,20M的文件,末尾的7M全是0x00;异常情况2:写的记录文件中,开头有数十个字节全是0x00或0xFF。
背景:使用A8处理器3352,采集4路CAN数据(2路内置,2路GPMC外扩),采集数据并记录SD卡。使用Linux3.12内核,Ext4文件系统。
请各位大佬帮忙看看有什么可能会导致这样的情况呢,感激不尽~!
这两种情况不是必现的,数十台设备中,就出现了2次。我在想会不会是4路CAN数据的中断频繁干扰了CPU,内核有异常导致的呢?
通常是你写完文件没有close也没有flush然后把电源断了{:funk:}{:funk:}最后再来怀疑系统bug。 有可能在文件cache里,close之前调用函数sync试下,sync试试。 LinuxHacker 发表于 2020-11-26 22:31
有可能在文件cache里,close之前调用函数sync试下,sync试试。
有定时调用sync函数,异常拔卡也容易导致这样的问吗?
我这边对写文件的机制不太了解,会不会是游标跑到后面去了,但是数据还没刷到SD卡上;如果是这样的情况,后面的数据应该是有效的?
页:
[1]