【发布时间】:2019-10-27 07:40:19
【问题描述】:
我试图在 C 中读取一个 32 字节的二进制文件,但是当我运行我的程序时,我不断收到“分段错误(代码转储)”, 如果有人可以通过指出我哪里出错来帮助我,那就太好了? 我的代码如下:
int main()
{
char *binary = "/path/to/myfiles/program1.ijvm";
FILE *fp;
char buffer[32];
// Open read-only
fp = fopen(binary, "rb");
// Read 128 bytes into buffer
fread (buffer, sizeof(char), 32, fp);
return 0;
}
【问题讨论】:
-
检查错误代码的时间,可能 fp 为空(顺便说一句,在编译时激活警告也会指出一些潜在问题...)
-
你正在读取 32 个字节,而不是 128
-
请不要在注释中重复代码中写的内容。它导致了我们在这里看到的:带有文字的注释几乎总是错误的。 ;-)
-
如果这些答案中的任何一个有帮助,请点赞和/或接受它们作为答案。另外,你发现问题了吗?