【发布时间】:2012-03-02 00:00:58
【问题描述】:
注意:我知道这已经被问过很多次了,但是没有一个问题与一个具体的、可移植的、维护的库相关。
我需要一个实现 Python/Ruby/Perl 的 C 或 C++ 库,例如 pack/unpack 函数。有这样的图书馆吗?
编辑:因为我发送的数据很简单,所以我决定只使用memcpy、指针和hton* 函数。我是否需要以任何方式操纵char 以与平台无关的方式通过网络发送它? (char 仅用作字节,不用作字符)。
【问题讨论】:
-
您能解释一下
pack/unpack在这些语言中的作用吗? -
Pack 和 unpack 分别用于将变量转换为二进制字符串,反之亦然。它们对于创建数据包和二进制文件以及其他二进制交互非常有用。我提到的语言在他们的标准库中有这个功能。 C/C++ 没有。
-
哦,嗯...仅供参考,这甚至是不可能的。这将需要大量的元编程(或 IDE 支持)来获取所有字段信息等等......我知道的唯一可以做到这一点的本地语言是 D。
-
我的意思类似于
sprintf,只是说明符用于二进制数据。只是同样的巨型switch声明。 -
我为此写了一个小标题库:Php pack/unpack C++,以防有人正在寻找具有相似 API 的相同功能
标签: c++ serialization pack unpack