mq_unlink
NAME
mq_unlink - 销毁一个消息队列 (REALTIME)
SYNOPSIS
#include <mqueue.h>
int mq_unlink(const char *name);
DESCRIPTION
函数 mq_unlink() 会从内核中删除名为name的消息队列.
如果该函数被调用了,但是仍然有进程已经打开了这个消息队列,那么这个消息队列的销毁会被推迟到所有的引用都被关闭时执行.
并且函数 mq_unlink() 不需要阻塞到所有的引用都被关闭为止,它会立即返回.
函数 mq_unlink()调用成功后, 如果在随后调用 mq_open() 时重用这个消息队列名字,效果就像这个名字的消息队列不存在,
如果没有设置O_CREAT标志,函数mq_open() 会返回失败,否则会创建一个新的消息队列.
PARAMETERS
①name
参数 name 是一个指向消息队列名字的指针.
名字的形式是 "/somename",是一个以NULL结尾的字符串,字符串的最大长度为NAME_MAX。
消息队列名字的第一个字符必须是"/",并且之后的字符中不允许出现"/"
RETURN VALUE
如果函数执行成功, 函数返回0
如果函数执行失败,函数返回 -1 并且设置errno,errno的种别详见下面的ERRORS一节.
ERRORS
[EACCES]
没有权限删除指定的消息队列.
[ENOENT]
指定的消息队列不存在.
[ENAMETOOLONG]
参数 name 的长度超过系统定义的最大长度.
在不支持XSI系统中,name 的长度超过了 {_POSIX_PATH_MAX},在支持XSI系统中,name 的长度超过了 {_XOPEN_PATH_MAX};或者
在不支持XSI系统中,某一级路径的长度超过了 {_POSIX_NAME_MAX},在支持XSI系统中,某一级路径的长度超过了 {_XOPEN_NAME_MAX};
EXAMPLES