0

我想从文件的几个部分中读取,然后将其输出为一个无符号字符。这是这个的简化版本:

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 只是覆盖了第一次添加到输出中的内容。有没有办法将第二个数据流附加到输出?

4

2 回答 2

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);
}
于 2012-04-15T16:58:37.793 回答
2

只需递增*output直到上一次读取结束,即*output + 111.

于 2012-04-15T17:00:45.667 回答