用Python打包并用C打包

时间:2012-10-10 16:50:12

标签: python c ctypes packing

我正在尝试在python中将整数打包为字节并在C中解压缩。所以在我的python代码中我有类似的东西

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

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

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

1 个答案:

答案 0 :(得分:0)

假设您有一个包含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?