信号量比我知道它们如何工作之前更没有意义

Semaphores make less sense than before I knew how they worked

好吧,我开始自己学习信号量,因为 class 我们根本没有教给我们很多东西(这是一个不会说英语的老师的助手,我的 11,500 美元用得很好).

总之,我弄清楚了如何使用信号量,并开始研究睡眠理发师问题。

理发师在枕头上等着别人sem_post。顾客等理发师post"seatbelt"说顾客可以走了

无论如何,在意识到信号量不会在进程之间共享后,我又回到了作业,因为它们不是线程。随作业提供的是函数 semgetsemopsemctl 的描述,这些函数以 structs 作为参数,如果有的话,解释也非常稀疏。

这些描述直接反对我在其他网络上使用 sem_open 打开信号量 'file' 的发现。

无论如何 - 我想我的问题是:

发送到 sem* 函数的 'keys' 是什么?有时它被设置为 IPC_PRIVATE 有时它被用作信号量的描述符?

我认为这些资源让我更加困惑而不是帮助

键在整个 SysVIPC 子系统中使用,它们是数字标识符,旨在通过 ftok(3) 函数从路径名派生。

您可以在联机帮助页或 http://beej.us/guide/bgipc/output/html/singlepage/bgipc.html or in the APUE book 中找到有关 SysV 信号量的更多详细信息。