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

1 投票
1 回答
849 浏览
提问于 2025-04-16 00:29

我有一个C语言程序和一个Python程序,它们在同一台机器上。这个C程序生成了一些嵌套结构的数据。我想知道用什么样的进程间通信(IPC)方式,把这些数据传递给Python程序比较好。

听说在C语言中序列化(也就是把数据转换成可以传输的格式,尤其是嵌套结构)非常麻烦,因为缺少序列化的库。我对共享内存不太熟悉,但我猜C语言的结构在内存对齐和指针方面可能不太适合Python程序使用。ctype和struct库似乎只适用于非嵌套的结构。目前我想到的办法是:

把C程序中的所有数据包装成xml或json格式,通过socket发送给Python程序,然后让Python程序解析这些xml/json格式的数据。这样做看起来很繁琐,还会有很多额外的开销。

有没有更好的主意呢?

1 个回答

2

我觉得你自己已经回答了自己的问题。JSON确实是个不错的选择。而且在C语言中自己做数据序列化也并不是特别难。

撰写回答