gpt4 book ai didi

C POSIX 中子进程之间的通信

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:28 26 4
gpt4 key购买 nike

我对同一进程父进程的子进程之间的通信有疑问。

  • 一个父进程创建了 N 个子进程。
  • 每个子进程都有一个 ID。
  • 第一个 child 的ID是N,第二个是(N-1),...最后一个是(1):

process i could continue to work only after it receives a signal SIGRTMIN from the process j= i-1 (brother left).

process i could finish only after it receives a signal SIGRTMIN+1 from the process j = i+1 >(brother right).

father process could finish only after all of its children finish.

问题是: 在不使用 IPC(消息队列、共享内存、信号量)或 IO(套接字、管道、管道、文件)的情况下,进程如何知道进程 ID左边是它的兄弟,右边是它兄弟的进程 id。

对于左兄的问题, 我用的是进程ID数组。更清楚的是,在父进程中,一个数组将保存它创建的每个子进程的进程id,当进程被创建时,它知道进程i-1的进程id(进程有ID = N-i+1)。

But I don't know how to get process id of process i+1 (brother right).

最佳答案

使用实时信号,您可以发送一个值。所以当我向他的左兄弟发送信号 SIGRTMIN 时,他可以发送他的 pid ,)

希望对你有所帮助。

关于C POSIX 中子进程之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23673736/

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