想写一个多线程写多个文件的程序,
开启4个线程,
线程1写文件1,线程2写文件2,线程3写文件3,线程4写文件4,我写的为什么在文件写入时老出现错误呢!!!
需要对文件加锁访问吗??请各位提示一下有什么好的方法!!非常的感谢!!!
开启4个线程,
线程1写文件1,线程2写文件2,线程3写文件3,线程4写文件4,我写的为什么在文件写入时老出现错误呢!!!
需要对文件加锁访问吗??请各位提示一下有什么好的方法!!非常的感谢!!!
解决方案 »
- 散分!第一次体验200分的感觉!
- 请求CAsyncSocket错误。老是报0xC0000005: Access Violation.
- debug版本运行正常,但是release版本出现错误,这个是怎么回事?
- ■■寻找VC++程序高手,有小项目合作,是高手的请进■■
- 请问为何把用动态DLL编译改为使用静态MFC DLL编译会有这样的错误
- 请教,WTL中自定义消息,怎么老报参数个数错误
- win2000更改环境设置里的系统变量需要重新启动么?
- 谁有cstdiofile类的中文资料呀。贴一下。
- Microsoft的Encoder,它可以把编码的流数据发到某一http端口,可以通过MediaPlayer来访问播放,有哪位大哥知道它的原理呢?网络是怎样实
- 怎么样用vc注册一个dll文件?
- 在windows下如何挂自己的中断服务子程序?
- 计算机英语群
文件以创建方式:CFile aFile;
BOOL bOK;
bOK = aFile.Open(sFileName, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
打开,进行写是未出现问题;
但是断点续传需要将文件指针指向末尾,接着下载完的继续下载时,Seek移动指针出现问题,原因现在也不知道,不要越界了,后来花不少功夫,现在是成功的, 先取长度再移:
bOK = aFile.Open(sFileName, CFile::modeWrite | CFile::typeBinary);
int iLen = aFile.GetLength();
aFile.Seek(iLen, CFile::begin);
不过对待下载的文件使用Seek移指针还是出问题:CHttpFile* pHttpFile = NULL;
pHttpFile->Seek(....);//出错
所以就再从头读,大于文件长度iLen-1时继续写,如果你是这问题,你可以试一试!