我的情况如下。我获得 FILE * 指针。我知道它可以指向不支持搜索的文件类型(可以是 PIPE)。所以为了让事情变得更容易,我想到了将文件的一部分作为字符串缓冲区加载到内存中。
问题是,我的文件在其他一些东西旁边包含我需要加载到内存的 C 结构。到目前为止,我所尝试的一切都失败了。
最有希望的似乎是 fmemopen,但是当我将它添加到我的代码中时,我得到了
warning: implicit declaration of function ‘fmemopen’ [-Wimplicit-function-declaration]
stream = fmemopen (buffer, p_header.bytes, "r");
警告,这当然不是我想要的。即使我添加了 stdio.h 包含,它仍然是隐式声明的。
对此有什么可做的吗?我可以以某种方式在内存中创建一些 FILE * 类型的东西,以便可以调用 fread 吗?或者有没有办法从字符串中读取结构?
我使用 fread 如下:
fread(&var_of_type_love_struct_t, sizeof(love_struct_t), 1, myfile);