gpt4 book ai didi

linux - 在进程之间传递消息

转载 作者:太空狗 更新时间:2023-10-29 12:18:54 24 4
gpt4 key购买 nike

我需要编写一个简单的函数来在 linux 中执行以下操作:

  • 创建两个进程。
  • 让 Process1 中的线程 1 做一些小操作,并在操作完成后通过线程 2 向 Process2 发送消息。*Process2 应确认收到的消息。

我不知道从哪里开始

  1. 我编写了两个简单的函数,它们在一个循环中简单地从 0 计数到 1000(该循环在一个线程调用的函数中运行),我编译了它们以获得二进制文件。
  2. 我正在通过 shell 脚本一个接一个地执行这些(都在后台运行)
  3. 一旦进程 1 在其循环中达到 1000,我希望第一个进程向另一个进程发送“完成”消息。

我不确定我的方法在流程方面是否正确,而且我完全不知道如何在这两者之间进行沟通。任何帮助将不胜感激。

迷失空间

最佳答案

您可能希望为此使用管道。根据进程的启动方式,您需要命名管道或匿名管道:

  • 如果进程彼此独立启动,则使用命名管道(又名 fifo,man mkfifo)。
  • 如果进程由父进程通过 fork 启动,则使用匿名管道(man 2 pipe)。父进程将创建管道,子进程将继承它们。这可能是“最美丽”的解决方案。

在这两种情况下,管道的端点都像任何其他文件描述符一样使用(但更像套接字而不是文件)。

如果您还不熟悉管道,我建议您阅读 Marc Rochkind 的书 “高级 UNIX 编程”,其中对这些技术进行了非常详细的解释,并且示例代码易于理解。那本书还介绍了其他进程间通信方法(POSIX 系统上唯一真正有用的进程间通信方法是共享内存,但为了有趣/完整性,他提供了一些 hack)。

关于linux - 在进程之间传递消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16689699/

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