利用OverlappedIO读取文件

利用OverlappedIO读取文件

从网上整理的文章,同样,这只是为了我增加理解记忆而做到得笔记,

不存在利用价值,纯粹是学习和记忆.抄袭也好学习也好只是让人明

白道理.主要干活的还是自己的程序.

I/O设备处理必然让主程序停下来干等I/O的完成,

对这个问题有

方法一:使用另一个线程进行I/O。这个方案可行,但是麻烦。

方法二:使用overlapped I/O。

正如书上所说:“overlapped I/O是WIN32的一项技术,

你可以要求操作系统为你传送数据,并且在传送完毕时通知你。

这项技术使你的程序在I/O进行过程中仍然能够继续处理事务。

事实上,操作系统内部正是以线程来I/O完成overlapped I/O。

你可以获得线程的所有利益,而不需付出什么痛苦的代价”。

怎样使用overlapped I/O:

进行I/O操作时,指定overlapped方式

使用CreateFile (),将其第6个参数指定为FILE_FLAG_OVERLAPPED,

就是准备使用overlapped的方式构造或打开文件;

如果采用 overlapped,那么ReadFile()、WriteFile()的第5个参数必须提供一个指针, 指向一个OVERLAPPED结构。 OVERLAPPED用于记录了当前正在操作的文件一些相关信息。

//功能:从指定文件的1500位置读入300个字节

int main()

{

BOOL rc;

HANDLE hFile;

DWORD numread;

OVERLAPPED overlap;

char buf[512];

利用OverlappedIO读取文件相关文档

最新文档

返回顶部