c - IPC msgrcv - 只接收两种特定类型的消息

标签 c linux ipc msgrcv

我有一个问题。

我有一个进程,假设它是一个客户端,还有一个叫做服务器的进程。客户端和服务器通过同一个队列相互通信。假设客户端向服务器发送一条消息(请求),因此服务器处理它并且应该将消息发送回客户端以确认或失败。假设确认有一个 long type = 1500101,失败有一个 long type = 1500102

是否有可能(在 C 中使用 msgrcv)只等待这两种类型的消息(客户端)? 如果不是,建立这种机制的最佳方式是什么?

最佳答案

不,您不能接收多种消息类型。它要么是所有类型,要么只是一种类型,要么是除了一种类型之外的所有类型。

可以做的是使用IPC_NOWAIT 标志调用msgrcv 两次,每种类型一次。

关于c - IPC msgrcv - 只接收两种特定类型的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14977723/

相关文章:

linux - 确定文件中出现哪些字符的命令

c - gstreamer 插件库未链接到 opencv 共享对象库 - Ubuntu 上的 "undefined symbol"

c - 解析XML文件的一部分

C Linux : warning: assignment makes integer from pointer without a cast [enabled by default]

linux - 在 Ubuntu 中创建目录的符号链接(symbolic link)

c++ - 在 Linux 上的进程之间传递消息的最快技术?

android - 从服务向 Activity 抛出自定义异常

c# - 与数据库的父子进程通信的最佳设计

c++ - 如何从 Windows 路径的 -D 编译器定义变量创建字符串文字

c++ - 使用c/c++计算整数和 float