您的位置:首页 > 编程语言 > C语言/C++

文件操作 异步IO

2017-05-21 07:21 405 查看
//FILE_FLAG_OVERLAPPED 异步
OVERLAPPED ovd;  //不会返回保存的位置
ovd.Offset = 100;
ovd.OffsetHigh;//组成一个64位
ovd.hEvent;//事件  方式通知   也可以放别的东西
ovd.Internal;//保存的错误码  错误返回
ovd.InternalHigh;//保存传输成功的字节数  所以 第三个参数没用了。

HANDLE hFile = CreateFile(L"test", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
OVERLAPPED overlapped = { 0 };
overlapped.Offset = 0;
BYTE bBuffer[MAXBYTE] = { 0 };
BOOL bRet = ReadFile(hFile, bBuffer, MAXBYTE, nullptr, &overlapped);
DWORD dwError = GetLastError();

if (bRet && dwError == ERROR_IO_PENDING)
{
//请求发送成功
WaitForSingleObject(hFile, INFINITE);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Visual Assist c++ 异步