开发者

Windows function ReadFile keeps returning FALSE and don't know why

开发者 https://www.devze.com 2023-01-20 10:24 出处:网络
It\'s quite a simple C code to read a file text, I\'ve done this other times but don\'t know why now the ReadFile function keeps returning FALSE meaning it fails.

It's quite a simple C code to read a file text, I've done this other times but don't know why now the ReadFile function keeps returning FALSE meaning it fails.

Obviously the text file input.txt exists and the CreateFile function succeeds (or at least doen't return INVALID_HANDLE_VALUE

#include <stdio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
    char ReadBuffer[256] = {0};
    HANDLE hFile1;
    int n = 0;
    DWORD bytesread = 5;

    printf("Press enter to read the file 'input.txt' ... ");
    getch();

    if ( (hFile1 = CreateFil开发者_高级运维e(TEXT("input.txt"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL) == INVALID_HANDLE_VALUE))
    {
        printf("INVALID_HANDLE_VALUE");
        return -1;
    }

    if ( ReadFile(hFile1, ReadBuffer, bytesread, &bytesread, NULL) == FALSE )
    {
        printf("ReadFile ERROR");
        CloseHandle(hFile1);
        return -2;
    }

    printf("\n\nRead bytes: %d \n\n", bytesread);


    CloseHandle(hFile1);
    return 0;
}


The error is a simple misplacement of a parenthesis.

if ( (hFile1 = CreateFile(TEXT("input.txt"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE)
0

精彩评论

暂无评论...
验证码 换一张
取 消