如何通过PID唤醒进程? (在C中)

时间:2014-01-15 12:31:44

标签: c mutex wait semaphore pid

我有一个共享内存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?

请原谅我的英文......

谢谢你们!!

1 个答案:

答案 0 :(得分:4)

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

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

阅读Advanced Linux Programming