我最近遇到了一个问题。 我需要在Android上的/data/data/com../tmp中将一些tmp数据写入文件(使用API fwrite)。
测试程序只在一个线程上运行。 并且一次写入几百KB的数据。
案例1: 在这种情况下,我首先在此路径中创建2个文件,然后轮流写入这2个tmp文件。
写入过程会偶尔暂停几次,有时几秒钟。 如果在这种情况下只写一个tmp(但是打开这个2文件)文件,那就是同样的情况。
案例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)
}