python - 用 Python 打包和用 C 解包

标签 python c ctypes packing

我试图在 python 中将整数打包为字节并在 C 中解包它们。所以在我的 python 代码中我有类似

testlib = ctypes.CDLL('/something.so')
testlib.process(repr(pack('B',10)))

它将 10 打包为一个字节并在我的 C 代码中调用函数“process”。

在我的 C 代码中需要什么来解压这些打包数据?也就是说,我需要做什么才能从给定的打包数据中取回 10。

最佳答案

假设您有一个包含 10 个整数的 10 字节字符串,只需复制数据即可。

char packed_data[10];
int unpacked[10];

int i;
for(i = 0; i < 10; ++i)
    unpacked[i] = packed_data[i];

... 或使用 memcpy

另一方面,如果您在打包时使用 4 个字节的 pr int,则可以在 C 中拆分 char 字符串并在其上使用 atoi。您如何将数据从 Python 交换到 C?

关于python - 用 Python 打包和用 C 解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824442/

相关文章:

python - 重新排列Python数据框索引和列

c - 010 编辑器模板 : Parsing 7-bit encoded int for length-prefixed string

python - 什么 ctypes 参数类型用于可变修改的多维数组

C 添加数组一个单词

Python,何时使用 ctypes.byref 作为引用传递

python - ctype Linux so库指针类型错误

python - 如何从python中的mathplot识别某个y值的所有x坐标值

python - Django 字符串索引超出范围

python - Django 基于类的 View

c - 寄存器如何作为汇编中的参数工作?