我试图一次读取一个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);
}
始终检查fread的返回状态。可能会失败。errno,可能有原因。