通过IPC从C到Python发送二进制数据

时间:2010-06-27 13:26:22

标签: python c sockets serialization

我在同一台机器上有一个C程序和一个Python程序。 C程序以嵌套结构生成一些数据。什么形式的IPC是将这些数据传递给python程序的最佳方式?

由于缺少序列化库,在C中进行序列化(尤其是嵌套结构)是一个真正的熊。我对共享内存不是很熟悉,但是我认为在内存对齐和跟随指针时,C结构的格式可能对python程序来说不太合适。 ctype和struct库似乎只适用于非嵌套结构。到目前为止,我在想的是:

将C程序中的所有数据包装成某种xml或json格式,通过socket将其写入python程序,然后让python程序解释xml / json格式的数据。看起来非常麻烦,有很多开销。

有更好的想法吗?

1 个答案:

答案 0 :(得分:2)

我想你回答了自己的问题。 JSON当然是个不错的选择。在C中进行自己的序列化也不是非常困难。