msgsnd中没有阻塞机制吗?消息队列:IPC

时间:2015-10-11 20:03:43

标签: c ipc message-queue blocking nonblocking

在C进程间通信中,我们可以选择调用msgrcv作为阻塞调用或非阻塞调用。但似乎msgsnd没有相同的灵活性。

我尝试使用

msgsnd(msgid, (void *)&my_message, MAX_TEXT, IPC_NOWAIT)

但它的行为方式与

完全相同
msgsnd(msgid, (void *)&my_message, MAX_TEXT, 0) 

我期待的是什么

msgsnd(msgid, (void *)&my_message, MAX_TEXT, 0)

将被阻止,直到另一端有人接收为止。但是,即使在另一侧没有接收功能,它也会进入代码的下一行。 我不明白为什么。

那么msgsend中根本没有阻塞机制吗?

0 个答案:

没有答案