今天想测试一个问题,需要比较多的文件。所以使用了如下代码来在一个目录中生成多个文件。
1 char cTstFilename[MAX_PATH]; 2 FILE *file = NULL; 3 4 for(i = 0;i < 1000;i++) 5 // for(i = 0;i < 1005;i++) 6 { 7 sprintf(cTstFilename,"\\Nand2\\Music\\Filename%04d.mp3",i); 8 file = fopen(cTstFilename,"w"); 9 if(NULL != file) 10 { 11 fwrite(cTstFilename,1,strlen(cTstFilename),file); 12 fclose(file); 13 } 14 else 15 { 16 RETAILMSG(1,(L"create file failed with error code; %d\r\n",GetLastError())); 17 } 18 }
难道 WinCE 下一个目录中只能创建 999 个文件?
因为第 1000 个文件创建失败. 报错: 112(磁盘空间不足). 确认磁盘空间足够!不行,不能创建文件成功。这是为什么呢?没有搞明白。
此问题,如果将创建目录修改为:\Temp,则可以生成所有文件,不会出现创建失败的问题。所以初步判断是 Nand 的驱动有问题,不是 WinCE 系统有问题。
2014年6月12日更新:怀疑的 WinCE Nand 驱动有关,想验证以下其它的方案。同时,是否是由于创建文件太快,引起 Nand 操作制作。所以进行了如下两个测试:
(1)使用 WinCE6.0 的 PND 进行测试,还是一样的现象。PND 的方案是:MStar 2521;
(2) 在创建文件后分别延时 30 和 100 毫秒,也是一样的现象。
WinCE 在连续创建约 1000 个文件后,再创建文件失败。这是为什么???
原文:http://www.cnblogs.com/91program/p/5205031.html