0

我最近遇到了一个问题。我需要将一些 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)
}
4

0 回答 0