msem_remove 子例程
用途
除去一个信号量。
库
标准 C 库 (libc.a)
语法
#include <sys/mman.h> int msem_remove ( Sem)
msemaphore *Sem;
msemaphore *Sem;
描述
msem_remove 子例程将除去二进制信号量。 在通过调用 msem_init 子例程再次初始化 姆塞马普霍尔 结构之前,它的任何后续使用都将具有未定义的结果。
msem_remove 子例程还会导致在已移除的信号量上等待 msem_lock 子例程中的任何进程返回错误。
如果 姆塞马普霍尔 结构包含任何不是由于调用 msem_init 子例程而产生的值,并后跟对 msem_lock 和 msem_unlock 子例程的调用序列 (可能为空) ,那么结果未定义。 姆塞马普霍尔 结构的地址是重要的。 如果 姆塞马普霍尔 结构包含从其他地址处的 姆塞马普霍尔 结构复制的任何值,那么未定义结果。
参数
| 项 | 描述 |
|---|---|
| 塞姆 | 指向 姆塞马普霍尔 结构,该结构指定要移除的信号量。 |
返回值
当成功时, msem_remove 子例程返回值 0。 否则将返回-1并设置errno全局变量来指示错误。
错误代码
如果 msem_remove 子例程不成功,那么 错误号 全局变量将设置为以下值:
| 项 | 描述 |
|---|---|
| EINVAL | 指示 塞姆 参数指向一个 姆塞马普霍尔 结构,该结构指定已移除的信号量。 |