【发布时间】:2010-07-28 22:06:30
【问题描述】:
我有一个函数可以将 rom 文件读入内存并自动分配以适应该文件,但每次我尝试从文件描述符中读取时,fread() 都会返回零。我不确定我做错了什么。有人可以帮忙吗?
int read_rom(const char *filename, unsigned char ***rom) {
int rom_size;
FILE *fd = NULL;
if((fd = fopen(filename, "r")) != NULL) {
fseek(fd, 0, SEEK_END);
rom_size = ftell(fd);
(*rom) = malloc(rom_size);
int read = fread(rom, 1, rom_size, fd);
fclose(fd);
printf("read: %d\n", read);
return rom_size;
}
return -1;
}
int main(int argc, char **argv) {
unsigned char rom_size = 0;
unsigned char **rom = NULL;
rom_size = read_rom(argv[1], &rom);
return 1;
}
有接受者吗?
【问题讨论】:
-
当
fread返回零时,您可以使用feof和ferror来调查原因。