18,355
社区成员
发帖
与我相关
我的任务
分享
message_queue::remove("mqtest");
message_queue LEmq(create_only, "mqtest", 10, sizeof(int));
while (true)
{
try{
//Create a message_queue.
message_queue ReceiveSLEmq
(open_only //only create
, "mqtest" //name
);
//Send 10 numbers
for (int i = 0; i < 10; ++i){
LEmq.send(&i, sizeof(int), 0);
}
}
catch (interprocess_exception &ex){
std::cout << ex.what() << std::endl;
return 1;
}
}
while (true)
{
try{
message_queue mq(open_only, // only open
"mqtest" // name
);
size_t recvd_size;
unsigned int priority;
// now send the messages to the queue
for (int i = 0; i < 10; ++i)
{
int buffer;
bool flag=mq.try_receive(&buffer, sizeof(int), recvd_size, priority);
if (recvd_size != sizeof(int))
return 0;// do the error handling
if (flag == false)
{
std::cout << "empty queue" << std::endl;
break;
}
std::cout << "NO. " << buffer << " recvd size: " << recvd_size << " priority: " << priority << std::endl;
}
}
catch (interprocess_exception& e)
{
std::cout << e.what() << std::endl;
}
}