您的位置:首页 > 运维架构

写文件的时候发现,写入频繁时 fopen会返回错误

2016-07-31 00:00 337 查看
写文件的时候发现,写入频繁时 fopen会返回错误 (0x20|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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐