gpt4 book ai didi

python - C 应用程序和 Python 之间的 IPC

转载 作者:太空狗 更新时间:2023-10-29 16:11:08 25 4
gpt4 key购买 nike

所以我对 IPC 比较陌生,我有一个收集数据的 c 程序和一个分析数据的 python 程序。我希望能够:

  1. 调用 python 程序作为我的主 c 程序的子进程
  2. 将包含要处理的数据的c结构传递给python进程
  3. 从python进程返回一个int值给c程序

我一直在简要地查看 Pipes 和 FIFO,但到目前为止找不到任何信息来解决此类问题,因为据我了解,例如 fork() 将简单地复制调用过程,所以不是我想要的想要,因为我正在尝试调用不同的进程。

最佳答案

关于fork()以及需要执行不同的进程。 fork() 确实创建了当前进程的副本。但这通常与 exec() 结合使用(各种形式之一)获取进程副本以执行不同的程序。

至于IPC,您有多种选择。有人提到了队列——但是像 ZeroMQ 这样的东西有点矫枉过正。您可以使用多种机制之一执行 IPC

  1. Pipes (命名管道或匿名)
  2. Unix 域套接字
  3. TCPUDP 通过套接字 API
  4. Shared memory
  5. Message queues

pipe 方法是最简单的。请注意,当您在 C 程序和 Python 之间来回传递数据时,您需要担心数据的传输语法。如果您选择使用 C 结构(不可移植),则需要在 Python 端解压数据。或者,您可以使用一些文本格式 - sprintf/sscanfJSON 等的组合。

关于python - C 应用程序和 Python 之间的 IPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34315470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com