我想从文件的几个部分读取,而不是将其作为一个unsigned char输出。 这是这个的简化版本:
void loadPartsOfFile (const char *filename, unsigned char **output)
{
*output = malloc(333);
FILE *file = fopen(filename, "rb");
fseek(file, 0, SEEK_SET);
fread(*output, 1, 111, file);
fseek(file, 10254, SEEK_SET);
fread(*output, 1, 222, file);
fclose(file);
}
第二个fread只是覆盖了第一个添加到输出的内容。有没有办法将第二个数据流附加到输出?
答案 0 :(得分:2)
void loadPartsOfFile (const char *filename, unsigned char **output)
{
*output = realloc(*output, 333);
FILE *file = fopen(filename, "rb");
fseek(file, 0, SEEK_SET);
fread(*output, 1, 111, file);
fseek(file, 10254, SEEK_SET);
fread(*output+111, 1, 222, file);
fclose(file);
}
答案 1 :(得分:2)
只需递增*output
直到上一次读取结束,i。即*output + 111
。