0
我的情況如下。我獲得FILE *指針。我知道它可以指向不支持seek的FILE類型(可以是PIPE)。所以爲了讓事情變得更容易,我想將文件的一部分作爲字符串緩衝區加載到內存中。從字符串加載C結構
問題是,我的文件包含,旁邊的一些其他的東西,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的man page,它會告訴你一些#defines。假設你的系統有它。在任何情況下,'memcpy'與fmemopen中的fread是一樣的。 – bmargulies
你的問題一直在描述一個'FILE *',但你不會顯示你的'fopen'調用。 **發佈更多代碼** – abelenky