最近,我在调查二进制文件损坏的原因。具体来说,我们有一个安卓应用程序,本地部分可以在SD卡上读/写二进制文件。有时候,二进制文件因为未知原因而损坏。我们从不同用户那里收集了一些这样的文件,并发现了一些有趣的事实。
其中一种主要的损坏类型是,二进制文件的前4096个字节被擦除了。当我使用hexdump查看这些文件时,前4096个字节都是零。不多于4096或少于4096,而是确切的4096字节。我认为这不是巧合。我知道4096字节是一页大小。但是由于缺乏经验,我无法想出原因,更重要的是,我不知道如何避免其他用户/设备遇到类似问题。
此外,在一些二进制文件的中间,还有一些连续的零段,这不应该存在。如果这不是我们程序的错误,是否有任何可能与平台/设备内核有关,或者像设备突然断电之类的其他原因?
我希望有经历过类似情况的人能给我一些提示/建议/解决方案等。这真的让我很困惑。
非常感谢~
mutex
并查看问题是否解决。或者如@Wossname建议的那样,尝试写入不同的硬件。 - Andrew Henle