fread语句似乎什么也没做

问题描述 投票:1回答:1

我试图一次读取一个512字节的文件,我设置了一个数组,其中包含512个空字节大小的单元,并且我目前已经设置了fread,可以将文件读取到该数组中,它可以正常编译并我没有收到任何运行时错误,但是当我在调试器中查看时,数组始终为空,有人可以看到为什么fread没有将文件字节添加到我的数组中吗?

int main(int argc, char* argv[])
{
    //only accept 1 argument, the target file
    if (argc != 2)
    {
        fprintf(stderr, "Usage: infile\n");
        return 1;
    }

    //create FILE object to store input file
    FILE *infile = fopen(argv[1], "r");

    //validate input file
    if (infile == NULL)
    {
        fprintf(stderr, "Could not open %s.\n", argv[1]);
        return 2;
    }

    //declare buffer array of 512 bytes
    typedef uint8_t BYTE;
    BYTE buffer[512];

    //read infile into buffer array
    fread(buffer, sizeof(BYTE), 512, infile);
}
c typedef fopen fread
1个回答
0
投票

始终检查fread的返回状态。可能会失败。errno,可能有原因。

© www.soinside.com 2019 - 2024. All rights reserved.