1

Pythonで整数をバイトとしてパックし、Cでアンパックしようとしています。したがって、Pythonコードには次のようなものがあります

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

10をバイトとしてパックし、Cコードで関数「プロセス」を呼び出します。

このパックされたデータをアンパックするには、C コードで何が必要ですか? つまり、指定されたパック データから 10 を取得するには、何をする必要があるかということです。

4

1 に答える 1

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 バイトの print int を使用している場合は、char 文字列を C で分割して使用できますatoi。Python から C にデータをどのように交換していますか?

于 2012-10-10T16:55:12.517 に答える