gpt4 book ai didi

Linux IPC技术的选择

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

我正在构建一个应用程序,该应用程序将一个可执行文件作为输入,执行它并跟踪动态内存分配等,以帮助追踪内存错误。

读取可执行文件的名称后,我创建了一个子进程,将可执行文件与我的模块(包括我的 malloc 函数系列版本)链接起来,并执行用户提供的可执行文件。父进程将包含一个 GUI(使用 QT 框架),我想在其中显示警告/错误/分配数量。

我需要将 mallocs/frees 的数量和一系列警告消息实时传达给父进程。在用户应用程序完成执行后,我希望显示内存泄漏的数量。 (我已经在我链接的共享库中处理了为此所需的所有后端编码)。

实时:

我想到了 2 种不同的方法来传达此信息。

  1. 子进程将写入 2 个管道(1 个用于写入分配/释放是否发生,另一个用于写入单个整数以表示警告消息)。
  2. 我想简单地发送一个信号来表示分配是否已经发生。还为每个警告消息创建信号。我会将这些映射到父进程中的实际警告(字符串)。

信号版本是否与使用管道一样高效?可行吗?有没有更好的选择,因为我很关心效率:)

用户的应用程序完成执行后:

我需要发送我用来跟踪内存泄漏的整个数据结构。这可能非常大,所以我不确定哪种 IPC 方法最有效。

谢谢你的时间

最佳答案

我建议使用 unix 域套接字,它比管道灵活一点,可以配置为数据报模式,这样您就不必再寻找消息边界,并且以后可以轻松移动到网络接口(interface)。

关于Linux IPC技术的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356887/

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