简介:
从文件指针指向的位置开始将文件数据读入内存中, 且支持同步和异步操作。
如果文件打开方式没有指明 FILE_FLAG_OVERLAPPED 的话,当程序调用成功时,它将实际读出文件的字节数保存到 lpNumberOfBytesRead 指明的地址空间中。
从文件中读出数据,与 C语言的 fread函数相比,这个函数要灵活的多,适用的场景也很多。该函数能够操作通信设备、管道、套接字以及邮槽。

声明:

BOOL ReadFile (
    HANDLE hFile,
    LPVOID lpBuffer,
    DWORD nNumberOfBytesToRead,
    LPDWORD lpNumberOfBytesRead,
    LPOVERLAPPED lpOverlapped
);

复制代码

参数:
hFile:需要读入数据的文件指针,这个指针指向的文件必须是 GENERIC_READ 访问属性的文件;
lpBuffer:接收读入文件数据的缓冲区;
nNumberOfBytesToRead:指定要读取的字节数;
lpNumberOfBytesRead:指向一个DWORD类型变量的指针,用来接收实际读取的字节数(实际读取的字节数很可能比要读取的字节数小);
lpOverlapped:OVERLAPPED 结构体指针,如果文件是以 FILE_FLAG_OVERLAPPED 方式打开的话,那么这个指针就不能为 NULL。FILE_FLAG_OVERLAPPED 允许对文件进行重叠操作,或者说异步操作,以后会讲解到。

返回值:
函数调用成功,返回TRUE,
调用失败,返回FALSE,如果要获得更多的错误信息,请调用 GetLastError 函数。

最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏