如何让PID等待一个信号量

如果我插入一个卡住的进程并查看表单的输出:

[gaius@redhat64 bin]$ strace -p 18185 Process 18185 attached - interrupt to quit [ Process PID=18185 runs in 32 bit mode. ] semop(458760, 0xffa00af0, 1 

我如何找出最后增加的信号量/我正在等待的PID? 我知道ipcs -plpid列,但只适用于共享内存段。

我的操作系统是x86_64上的RHEL 5.4(Tikanga)。 谢谢!

快速和肮脏:

 #include <sys/sem.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int pid; if (argc != 2) return 1; pid = semctl(atoi(argv[1]), 0, GETPID); printf("%d\n", pid); return 0; } 

(我在这里猜测)