mq_open函数打开失败原因

最近在看IPC,自己在编写Posix消息队列时,遇到mq_open无法打开,总是返回错误。因为在posix标准中,并不是所有的名字都可以使用,必须是以 / 开始,并且名字里只能包含一个 / 。

代码如下,如果使用NAME ,输出success。如果使用NAME1,输出erro

#include 
#include 
#include 
#include 
#include 
using namespace std;

#define NAME "/myque.1234"
#define NAME1 "myque.1234"

#define MODE S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP

void test()
{
	int flags=O_RDWR|O_CREAT; 
	mqd_t mqd;
	if((mqd=mq_open(NAME,flags,MODE,NULL))==(mqd_t)-1)
		 cout<<"erro"<

 

你可能感兴趣的:(linux)