我使用msgget
函数创建了消息队列。
下面的代码是它的片段。
key_t msg_queue_key_id = msgget((key_t)MQ_KEY, IPC_CREAT | IPC_EXCL | 0666);
if( msg_queue_key_id == -1 ) {
char error_log[MAX_LENGTH];
sprintf(error_log, "failed to create message queue. errno = %d", errno);
ERROR_LOGGING(error_log)
return 1;
}
我遇到错误17,因为我已经创建了消息队列。
不幸的是,我找不到如何删除邮件队列。我也看到了mq_unlink
函数,但对于这种情况看起来不像。
我该如何解决这个问题?
答案 0 :(得分:2)
使用msgctl(msqid, IPC_RMID, 0)
删除使用msgget
创建的邮件队列。
答案 1 :(得分:1)
我发现....使用linux命令/* Debug only */
if (!defined('_PS_MODE_DEV_'))
define('_PS_MODE_DEV_', true);
ipcrm
我们还可以使用ipcrm -q {{messag_queue_key}}