在C中,我正在将文件中的二进制数据读入var data
,如下所示:
unsigned char *data;
data = malloc(size);
int read_size = fread(data, 1, size, fp);
我想在文件的data
前添加var <filename><size>
。我怎样才能做到这一点?
它不是一个合法的C字符串,因为它是可能遍布整个地方的空字节的二进制数据。
我知道要确保我分配足够的内存,我只是想不出如何实际预先添加它。
答案 0 :(得分:2)
data
分配足够的内存。fread()
。答案 1 :(得分:0)
定义您自己的存储数据格式:
<uint64_t datalength><string name><char[datalength] contents>
或者更容易在应用内使用:
struct named_file {
char* contents;
uint64_t datasize;
char name[]; // contents begin directly after the name.
}
memcpy()
,直接阅读,无论如何。