簡體   English   中英

從字符串加載C結構

[英]Load C structure from string

我的情況如下。 我獲得了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的警告是編譯器沒有找到原型,添加

#define _GNU_SOURCE

包含所有標頭之前 ,或者,如果使用GCC,則將-D_GNU_SOURCE添加到選項中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM