【问题标题】:How to wake up a process by PID? (in C)如何通过PID唤醒进程? (在 C 中)
【发布时间】:2014-01-15 12:31:44
【问题描述】:

我有一个共享内存 X(数组)、2 种进程类型和 3 个信号量,一个用于修饰符 X,另一个用于等待,直到我想唤醒这些等待的进程之一。

一步一步:

1. I'm the process 1 and I ask for semaphore 1 (mutex).
2. OK I got it so I can add me in the array, now I wait (semaphore 2).
3. REPITE this for all the process

例如,现在我有一个包含 20 个 PID 的数组,我想唤醒进程 5 (x[4])。

问题是:如何唤醒这个进程?如何向具体的 PID 发送信号?

对不起,我的英语...

谢谢你们!!

【问题讨论】:

    标签: c mutex wait semaphore pid


    【解决方案1】:

    您可以使用kill(2) 系统调用向某个给定进程发送信号。

    我不确定这是最好的同步方式(我相信它不是;阅读signal(7))。您可以使用 Posix 信号量 sem_overview(7)(甚至旧的 SysV 信号量 svipc(7))或管道 pipe(7)(或 unix(7) 套接字)和 poll(2)

    阅读Advanced Linux Programming

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 2018-07-16
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多