msem_remove 子例程

用途

除去一个信号量。

标准 C 库 (libc.a)

语法

#include <sys/mman.h>
int msem_remove ( Sem)
msemaphore *Sem;

描述

msem_remove 子例程将除去二进制信号量。 在通过调用 msem_init 子例程再次初始化 姆塞马普霍尔 结构之前,它的任何后续使用都将具有未定义的结果。

msem_remove 子例程还会导致在已移除的信号量上等待 msem_lock 子例程中的任何进程返回错误。

如果 姆塞马普霍尔 结构包含任何不是由于调用 msem_init 子例程而产生的值,并后跟对 msem_lockmsem_unlock 子例程的调用序列 (可能为空) ,那么结果未定义。 姆塞马普霍尔 结构的地址是重要的。 如果 姆塞马普霍尔 结构包含从其他地址处的 姆塞马普霍尔 结构复制的任何值,那么未定义结果。

参数

描述
塞姆 指向 姆塞马普霍尔 结构,该结构指定要移除的信号量。

返回值

当成功时, msem_remove 子例程返回值 0。 否则将返回-1并设置errno全局变量来指示错误。

错误代码

如果 msem_remove 子例程不成功,那么 错误号 全局变量将设置为以下值:

描述
EINVAL 指示 塞姆 参数指向一个 姆塞马普霍尔 结构,该结构指定已移除的信号量。