【发布时间】:2015-08-30 22:03:09
【问题描述】:
我正在尝试编写一个程序,该程序将使用 curl 查询 URL 并检索一串字节。返回的数据比需要解释为各种数据类型;一个 int 后跟一个序列结构。
curl 回写函数必须有一个原型:
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);
我见过各种示例,其中返回的数据作为字符直接存储在内存中或作为字符串对象存储在缓冲区中。
如果我有一个字符数组,那么我知道我可以用这样的代码将它的一部分解释为一个结构:
struct mystruct {
//define struct
};
char *buffer;
//push some data into the buffer
char *read_position;
read_position = buffer + 5;
test = (mystruct *)buffer;
我有两个相关的问题。首先,有没有更好的方法使用 curl 检索二进制数据并将其推送到结构中,而不是直接将其作为字符读入内存。其次,如果将内存作为字符缓冲区读取是可行的方法,那么我的代码是否可以将内存块解释为不同的数据类型?
【问题讨论】:
-
我看到您在
C标记中进行了编辑。请注意,没有“C/C++”这样的语言。 -
正如我在编辑中所说的那样,我并不热衷于使用任何一种语言,并且乐于考虑使用任何一种语言的解决方案。我更熟悉 C++,希望有一些有用的抽象,例如流,这可能会有所帮助。