gpt4 book ai didi

c - WinAPI ReadFile 在达到 null 时停止

转载 作者:行者123 更新时间:2023-11-30 21:36:32 24 4
gpt4 key购买 nike

我正在尝试编写一个非常简单的 win32 程序。我使用 CreateFile() 打开一个文件进行读取,然后使用 ReadFile()

读取其内容
HANDLE hfile=CreatFileW(L"Capturejpg.jpg", GENERIC_READ, 0,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
bReadResult=ReadFile(hFile, ReadBuff, BUFFERSIZE-1, &dwBytes, &OL);

例如,当我读取 .txt 文件时,这工作得很好,问题是当我读取的文件包含 NULL 时(大多数文件都是这种情况),然后 ReadFile 函数当到达第一个 NULL 时,停止读取(或者可能将字节写入 ReadBuff )。在提问之前我搜索并找到了两个答案。

  1. 使用 char 数组和 char * 之外的其他内容:为此,我不知道还能使用什么,因为我的目标是读取文件并搜索文件扩展名(例如例如,如果是 .gif,则前 3 个字符为“Gif”)
  2. 更改 DCB:这个的问题是我不知道 DCB 实际上是什么、如何更改它以及到底更改其中的内容。

编辑:具有相同问题的其他帖子:this onethis one

最佳答案

ReadFile 一点也不关心它读取的内容。它会很高兴地读取零字节并继续读取文件中该点之后的内容。如果做不到这一点那就没有多大用处。

您刚刚误判了问题。您已读入字符数组ReadBuffer,然后按如下方式打印:

printf("%s", ReadBuffer);

现在,printf 在达到零字节时确实会停止。您将需要找到其他方法来输出该文件的内容。

关于c - WinAPI ReadFile 在达到 null 时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49255387/

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