写文件的时候发现,写入频繁时 fopen会返回错误
2016-07-31 00:00
337 查看
写文件的时候发现,写入频繁时 fopen会返回错误 (0x20|32-另一个程序正在使用此文件,进程无法访问。)
这是因为:
由于本地磁盘开启了cache,导致fclose后并不立即刷新文件
如果此时再去进行fopen操作时会返回32错误
这是因为:
由于本地磁盘开启了cache,导致fclose后并不立即刷新文件
如果此时再去进行fopen操作时会返回32错误
// // //为了防止磁盘的cache导致的fclose后不立即刷新文件 //这里一直尝试去打开文件 // bool appendFile( const char* filename, byte* buf, DWORD size ) { FILE * f = fopen(filename, "ab" ); if(f) { fwrite( buf, size, 1, f ); fclose( f ); return true; } else { //为了防止磁盘的cache导致的fclose后不立即刷新文件 //这里一直尝试去打开文件 Sleep( 1 ); return appendFile( filename, buf, size ); } return false; }
相关文章推荐
- 引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra
- html内容写入到文件中的时候出现‘TypeError: expected a character buffer object’错误
- 求解啊,我在android中开发,写入sd卡的时候出现了错误,测试了能够连接了到本地服务器的文件了,就是写入sd卡的时候不能写入
- c语言写入开机启动项的时候,RegSetValueEx的返回值为0,但是发现注册表中没有设置的属性
- 引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra
- 在写入数据库的时候,某字段varchar(20),报“字符长度超长”的错误,但是去数据库中用length()查,发现最大的长度都不超20,为什么会报这个错呢?
- 下载的时候提示:“写入到文件时产生错误(请用磁盘检查工具检查修复)”的解决办法
- 客户端在发送邮件的时候,邮件服务器返回Relaying denied错误的解决方法
- [记录]编译器错误信息: CS0016: 未能写入输出文件
- 主题:CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\***.dll”错误处理
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 编译器错误信息: CS0016: 未能写入输出文件,..\Temporary ASP.NET Files\WebApp\d087da43\c12930d8\9ze28k_8.dll”--拒绝访问
- 编译器错误信息: CS0016: 未能写入输出文件
- 编译器错误信息: CS0016: 未能写入输出文件 解决方法
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- .net winform程序生成“未能写入输出文件---目录名无效”错误解决方案[原创]
- cs0016: 未能写入输出文件“c:\windows\microsoft.net\***.dll”错误处理
- 编译器错误信息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
- 编译器错误信息: CS0016: 未能写入输出文件“d:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\5177u\d087da43\c12930d8\9ze28k_8.dll”--“拒绝访问。 ”的解决方法