gpt4 book ai didi

c++ - 对 ReadFile 函数的异步调用返回 6 错误代码

转载 作者:行者123 更新时间:2023-11-28 00:59:50 24 4
gpt4 key购买 nike

为了异步读取文件,我写了下面的 C++ 代码:

#define BUF_SIZE 1024
HANDLE hFile;
DWORD NumberOfBytesRead = 0;
BYTE *buf = (BYTE*)malloc(BUF_SIZE*sizeof(BYTE));
OVERLAPPED overlapped;
overlapped.Offset = overlapped.OffsetHigh = 0;

hFile = CreateFile("C:\\Users\\Desktop\\FOO.cpp",
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);



if (hFile == INVALID_HANDLE_VALUE)
printf("invalid hfile\n");

int i;
i= ReadFile(hFile,
&buf,
BUF_SIZE,
&NumberOfBytesRead,
&overlapped);

if(!i && GetLastError() != ERROR_IO_PENDING)
printf ("ReadFile failed with error %d.\n", GetLastError());
else
{
WaitForSingleObject(&(overlapped.hEvent), 0);
printf("here it is %d",NumberOfBytesRead );
}

CloseHandle(hFile);

但是 ReadFile 的返回值为 0,最后一个错误等于 6。有谁知道为什么? 6 个错误代码表示什么?

谢谢!

最佳答案

也许您的问题出在 OVERLAPPED 结构上,您没有正确初始化它。请参阅:“在函数调用中使用结构之前,应始终将此结构的任何未使用成员初始化为零。否则,函数可能会失败并返回 ERROR_INVALID_PARAMETER。”在这里备注:here .您可以使用 memset 清除所有内容。

关于c++ - 对 ReadFile 函数的异步调用返回 6 错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9357772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com