博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WinCE 在连续创建约 1000 个文件后,再创建文件失败。这是为什么???
阅读量:4955 次
发布时间:2019-06-12

本文共 1718 字,大约阅读时间需要 5 分钟。

今天想测试一个问题,需要比较多的文件。所以使用了如下代码来在一个目录中生成多个文件。

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 }
初次,想生成 1000 个文件。使用中看到文件个数为 999 时, 并为太在意。
后来,想生成 1005 个文件时,发现生成的文件个数仍然为 999,这时才觉得有问题。
因为在发现此问题前,没有 else 分支中的语句:RETAILMSG(1,(L"create file failed with error code; %d\r\n",GetLastError()));
else 分支在语句是在发现创建的文件个数没有达到想要的数量时才增加的。增加后看到多行如下输出:
create file failed with error code; 112
通过“错误查找”工具,知道 112 的含义是:磁盘空间不足。
但是通过 WinCE 资源管理可以看到,此分区空间足够。可以在此分区其它目录中复制/创建文件,但就是不能在 Nand2 目录再创建文件。

 

 

难道 WinCE 下一个目录中只能创建 999 个文件?

因为第 1000 个文件创建失败. 报错: 112(磁盘空间不足). 确认磁盘空间足够! 
如果只做此一次测试,是可以确认 WinCE 的一个目录中,最多只能有 999 个文件。可以在此目录中创建子目录,在子目录中可以创建文件。但只做一次测试足够吗?

最后验证,在一个目录中可以重复执行以上代码(修改一下文件名)。也就是说一个目录中,能创建的文件不只 999 个,几千个都是可以的。
sprintf(cTstFilename,"\\Nand2\\Music\\0Filename%04d.mp3",i); // 0Filename0000.mp3
sprintf(cTstFilename,"\\Nand2\\Music\\2Filename%04d.mp3",i); // 2Filename0000.mp3
都可以。
但:
sprintf(cTstFilename,"\\Nand2\\Music\\Filename%05d.mp3",i); // Filename00000.mp3

不行,不能创建文件成功。这是为什么呢?没有搞明白。

 此问题,如果将创建目录修改为:\Temp,则可以生成所有文件,不会出现创建失败的问题。所以初步判断是 Nand 的驱动有问题,不是 WinCE 系统有问题。

 2014年6月12日更新:怀疑的 WinCE Nand 驱动有关,想验证以下其它的方案。同时,是否是由于创建文件太快,引起 Nand 操作制作。所以进行了如下两个测试:

(1)使用 WinCE6.0 的 PND 进行测试,还是一样的现象。PND 的方案是:MStar 2521;

(2) 在创建文件后分别延时 30 和 100 毫秒,也是一样的现象。

转载于:https://www.cnblogs.com/91program/p/5205031.html

你可能感兴趣的文章
Linux centosVMware shell 管道符和作业控制、shell变量、环境变量配置文件
查看>>
【设计模式】工厂模式
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
客户数据库出现大量cache buffer chains latch
查看>>
機械の総合病院 [MISSION LEVEL: C]
查看>>
实战练习细节(分行/拼接字符串/字符串转int/weak和copy)
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
C# windows程序应用与JavaScript 程序交互实现例子
查看>>
HashMap详解
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
WPF自定义搜索框代码分享
查看>>