我最近遇到了一个问题。我需要将一些 tmp 数据写入 /data/data/com 中的文件(使用 API fwrite)。. /tmp 在安卓上。
测试程序只在一个线程上运行。一次写入几百KB的数据。
案例1: 这种情况下,我先在这个路径下创建2个文件,然后轮流写入这2个tmp文件。
写入过程偶尔会暂停几次,有时会暂停几秒钟。如果在这种情况下只写一个 tmp(but fopen this 2 file) 文件,情况是一样的。
情况2: 如果该目录中只有一个tmp文件。写入过程永远不会暂停..
为什么在案例 1 中写入过程会不断暂停?
感谢您的帮助。
更新:
我已经测试了几个版本的 Android,包括 2.3.7 、 4.0.3 、 4.1
代码是:
FILE *tmp1 = fopen(tmp1,"wb");
FILE *tmp2 = fopen(tmp2,"wb");
FILE *swap = tmp1;
while(..) {
if (..)
swap = tmp2;
else
swap = tmp1;
fwrite(.., swap)
}