c - 从字符串加载 C 结构

标签 c file

我的情况如下。我获得 FILE * 指针。我知道它可以指向不支持查找的 FILE 类型(可以是 PIPE)。因此,为了让事情变得更简单,我想到了将文件的一部分作为字符串缓冲区加载到内存中。

问题是,我的文件除了一些其他内容外还包含我需要加载到内存中的 C 结构。到目前为止,我尝试的一切都失败了。

最有前途的似乎是 fmemopen,但是当我将它添加到我的代码中时,我得到了

warning: implicit declaration of function ‘fmemopen’ [-Wimplicit-function-declaration]
stream = fmemopen (buffer, p_header.bytes, "r");

警告,这当然不是我想要的。即使我添加了 stdio.h include,它仍然是隐式声明的。

对此有什么办法吗?我可以以某种方式在内存中创建 FILE * 类型的东西,以便我可以调用 fread 吗? 或者有没有办法从字符串中读取结构?

我使用 fread 如下:

fread(&var_of_type_love_struct_t, sizeof(love_struct_t), 1, myfile);  

最佳答案

关于fmemopen的警告是编译器没有找到原型(prototype),添加

#define _GNU_SOURCE

之前包括所有 header ,或者,如果使用 GCC,请将 -D_GNU_SOURCE 添加到选项中。

关于c - 从字符串加载 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19742100/

相关文章:

python - 如果在打开的同一行读取文件是否会自动关闭?

c - 为什么以下程序退出失败?

c - 显示指针减法

c++ - GetShortPathName 函数有哪些替代方法?

c - 换行符在 fgets() 之后保留在缓冲区中?

linux - 使用建议文件锁限制并发进程

windows - 将 cin (c++) 重定向到 cmd 中的多个文件

python - 段错误(核心转储)- pdf2htmlEX

java - 如何在包含大约 50 万条记录的大型文本文件中搜索重复值

c - 打开文件时复制字符串时遇到问题