VC高速读写硬盘扇区

在Windows下的文件读写操作,都是调用微软提供的文件读写库函数,使用起来非常方便,然而也有一些固有的缺陷,那就是读写文件的速度非常慢。正巧近期也做一个高速存储的课题,需要在存储1Gbps速率的数据流,开始使用文件存储的方式,优化了很久的代码,都没有达到好的效果,于是开始尝试另一种方式,写硬盘扇区。经过测试和验证,发现写扇区的效率要比写文件要高的多,达到Gb的持续写入速度根本没什么鸭梨,如下是几个关键函数:

1、打开磁盘。

HANDLE CreateFile(  LPCTSTR lpszName, DWORD fdwAccess, DWORD fdwShareMode                    LPSECURITY_ATTRIBUTES lpsa,     DWORD fdwCreate,                                DWORD fdwAttrsAndFlags,     HANDLE hTemplateFile      )

2、设置文件写入位置

DWORD SetFilePointer(
  HANDLE hFile,                 
  LONG lDistanceToMove,         
  PLONG lpDistanceToMoveHigh,   
  DWORD dwMoveMethod            
)

3、将数据写入

BOOL WriteFile(
  HANDLE hFile,                  
  PCVOID lpBuffer,               
  DWORD nNumberOfBytesToWrite,   
  PDWORD lpNumberOfBytesWritten,   
  POVERLAPPED lpOverlapped       
)

4、关闭磁盘

BOOL CloseHandle(
  HANDLE hObject  
)

在我的老古董电脑上进行了运行,基本上可以达到50MB的持续写入速度,在固态硬盘上那是跑的嗖嗖的,1Gb的速率都不是个事。


由于不能上传附件,软件不能上传上来了。有需要的话可以联系[email protected]





猜你喜欢

转载自blog.csdn.net/weixin_38307270/article/details/80715430
今日推荐