Tag: binaryfiles

C在二进制文件的中间写入而不覆盖任何现有内容

今天的问题是我需要在起始位置的二进制文件中编写一个数字数组。 我有它应该开始的位置,我不想在此之后覆盖值,只是想将数组插入文件的起始位置。 例如: 12345 让我们在第2位推456: 12456345 我知道可能我必须自己实现它,但我想知道你对如何尽可能有效地实现它有什么看法。

存储在二进制文件中的int不成功fread(),分段错误

似乎有10个问题的顺序和(大多数)成功的答案解决因C中误用的fread()导致的分段错误。尽管如此,我遇到了这样的问题,但还没有找到解决方案。 我有一个二进制文件,包含一个int (称为nbins )和一个float数组(大小为nbins )。 当我尝试读取此文件时,它会成功打开并指向文件句柄,但在读取nbins int时会出现分段错误错误。 这是一个最小的例子: #include #include #include #define BPATH “/path/to/file” int main(int agrc, char **argv) { FILE *fd; int num; char fname[500]={}; int nbins; float *coords; num = 5; sprintf(fname,”%s/file%d.dat”, BPATH, num); if(!(fd=fopen(fname,”rb”))) { printf(“Can’t open file: %s\n\n”,fname); exit(0); } printf(“Reading input file:\n”); printf(“%p: %s\n”, fd, fname); // prints successfully fread(&nbins, […]