Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过PID唤醒进程?(C)中_C_Mutex_Wait_Semaphore_Pid - Fatal编程技术网

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

如何通过PID唤醒进程?(C)中,c,mutex,wait,semaphore,pid,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的数组

我有一个共享内存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发送信号

请原谅我的英语

谢谢大家

您可以使用syscall向某个给定进程发送信号

我不确定这是同步的最佳方式(我认为不是;请阅读)。您可以将Posix信号量(甚至旧的SysV信号量)或管道(或套接字)用于

阅读

您可以使用系统调用向某个给定进程发送信号

我不确定这是同步的最佳方式(我认为不是;请阅读)。您可以将Posix信号量(甚至旧的SysV信号量)或管道(或套接字)用于

阅读