好吧,所以我自己开始学习信号量,因为我们的课程根本没有教过我们(这是一个非英语老师的助手,很好地利用了我的11,500美元) .
无论如何,我想出了如何使用信号量,并开始我的睡眠理发问题的工作 .
理发师在他的枕头上等待某人 sem_post
. 客户等待理发师发布"seatbelt"表示客户可以离开 .
无论如何,我在意识到信号量赢得了线程之后回到了作业 . 提供赋值的是函数 semget
, semop
和 semctl
的描述,它们有 structs
作为参数,如果有的话,解释非常稀疏 .
这些描述直接反对我在使用 sem_open
打开'file'这个信号量的网络其余部分的发现 .
无论如何 - 我想我的问题是:
发送给 sem*
函数的'keys'是什么?有时它被设置为IPC_PRIVATE,有时它被用作信号量的描述符?
我认为这些资源让我比他们帮助更困惑
1 回答
密钥用于整个SysVIPC子系统,它们是数字标识符,意味着通过ftok(3)函数从路径名派生 .
您可以在联机帮助页中或http://beej.us/guide/bgipc/output/html/singlepage/bgipc.html或APUE book中找到有关SysV信号量的更多详细信息 .