请注意,默认权限参数是八进制的!因此,默认值 0666 与 666 或 0x666 不相同。
如果将权限指定为十进制 666,那么您最终会获得阻止读取信号量的权限。症状是您只能 sem_get 一次,后续的 sem_get 将失败(直到您 ipcrm 或 sem_remove 它并完全删除它)。
因此,这些都等效于默认值
sem_get ( 123, 1, 0666)
sem_get ( 123, 1, 438)
sem_get ( 123, 1, 0x1b6)
大多数 PHP 开发人员(包括我自己)很少使用八进制数字,因此数字 0666 很容易被误认为是 666 或者可能是 0x666。