我正在尝试将 jpeg 文件读取为二进制文件,但似乎 fread 停止在 0 (0x00) 或根本没有读取文件。
网上还没发现类似的问题
它可以很好地读取 html 文件。
我尝试了不同的长度选项并尽我所能进行调试。 Perror 返回未知错误:0
我测试了两个不同的 jpg,并从两者中获得了相同的十六进制顺序。
char *readFile(char *name) {
char *buffer;
int length;
FILE *f = fopen(name, "rb");
if (f) {
fseek(f, 0, SEEK_END);
length = ftell(f);
fseek(f, 0, SEEK_SET);
buffer = malloc(sizeof(char) * (length + 1));
buffer[length] = '\0';
if(fread(buffer, sizeof(char), sizeof length, f));
perror(buffer);
printf("%s", buffer);
fclose(f);
}
return buffer;
}