msgget() 和 mq_open 之间的区别

2024-04-23

我阅读了有关消息队列操作的信息,例如 msgget()、msgsnd() 和 msgrcv()。但是当我在堆栈溢出上搜索消息队列相关问题时,我发现还有另一组消息队列操作,例如 mq_open()、mq_send()、mq_receive()。谁能告诉我这两种类型的消息队列之间有什么区别以及哪种类型的消息队列被广泛使用?


The msgXXX家族继承自SysV。这mq_XXXfamily 是由 POSIX 创建的。然而,这两个家族都是 POSIX 的一部分。

这两个系列有一些不同的功能集,最重要的是 SysV 变体允许指定不同的消息类型。这提供了处理消息的方式和分配优先级的灵活性。相比之下,POSIX 系列始终返回具有最高优先级的最旧消息。

一般来说,POSIX 系列是更好的选择,除非您确实需要使用有关 SysV 的某些内容。 POSIX 接口也不太麻烦。一个额外的好处(在 Linux 上)是 POSIXmqd_t表示队列标识符的类型实际上是文件描述符。这允许极其方便地使用 POSIX 队列select, poll和类似的设施。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

msgget() 和 mq_open 之间的区别 的相关文章

随机推荐

  • 无法在 MacOS Big Sur 上安装/运行 Python 3.6.x 和 3.7.x [已关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我将 mac 操作系统升级到最新的 MacOS Big Sur 更新后我以前使用 python 3 6 x 3 7 x
  • “Alternative”中的模式匹配

    我有一个函数 它的参数进行模式匹配以生成计算StateT Maybe 可以这么说 此计算在运行时可能会失败 在这种情况下 我希望当前的模式匹配分支失败 我非常怀疑是否有可能有类似的东西 compute Int gt StateT Maybe
  • C# WebClient 使用异步并返回数据

    好吧 我在使用 DownloadDataAsync 并让它返回字节给我时遇到了问题 这是我正在使用的代码 private void button1 Click object sender EventArgs e byte bytes usi
  • HTTPS 上的 SWFUpload 无法正常工作

    当目标 servlet 侦听 HTTPS 时 我在使用 SWFUpload 上传文件时遇到问题 在 HTTP 上它工作得很好 仅当使用 FireFox 或 Opera 时才会出现此问题 在 IE 上它工作正常 没有尝试过其他浏览器 EDIT
  • 如何发出 JMS 同步请求

    我有一个 Web 应用程序 预计将从外部应用程序获取和显示数据 该外部应用程序只能通过消息传递 JMS 访问 因此 如果用户在浏览器上提交请求 则同一 HTTP 请求线程将必须与消息系统 MQ 系列 交互 以便同一请求线程可以显示从消息系统
  • 如何在 Silverlight/C# 中访问 ListBox 控件的 ScrollViewer 元素?

    我希望从 C 动态更改 Silverlight ListBox 的滚动位置 并且我需要知道如何从 C 访问 ListBox 控件的 ScrollViewer 元素 多谢你们 杰夫 在从 ListBox 类继承的类中 您可以使用 Protec
  • 区分大小写的文件系统上的 File.equals

    我有一个字符串形式的文件路径 在 Java 中 我需要确定文件系统上是否存在该文件 并且我们的代码需要跨平台 因为它在 Windows Linux 和 OS X 上运行 问题是文件路径和文件本身的大小写可能不匹配 即使它们确实代表相同的文件
  • 如何重叠两个控件

    我有一个圆和一个线控件 Circle 控件的 OnPaint 绘制一个圆 Line 控件的 OnPaint 绘制一条线 这两个控件包含在另一个控件 DrawingControl 中 我需要在圆上放置一条线 但圆的背景删除了该线 我尝试启用透
  • 如何在C#中将JSON数据保存到SQL Server数据库?

    我正在使用 synapse pay API 作为回报 我得到了一些响应 我想将该响应保存在 SQL 数据库中 我为此创建了课程 下面是获取响应的代码 var httpWebRequest HttpWebRequest WebRequest
  • 为什么我的 Android HttpClient 在调用 Execute 时不发送参数?

    我有一个AsyncTask设置创建一个AndroidHttpClient并打电话Execute 有一个HttpPost and BasicHttpContext我提供的对象 我设置了HttpPost像这样 HttpPost myPost n
  • 加载 aspnetcore RC2 默认网站项目时出现“Bad Gateway”错误

    我尝试通过 IIS 运行默认的 ASP NET Core Web 应用程序 VS 2015 中的 Web 应用程序模板 我已按照文档的说明进行操作here https docs asp net en latest publishing ii
  • 从 Android Studio 运行 Android 应用程序时如何启用协程调试模式?

    我在通过 Android Studio 以调试模式运行 Android 应用程序时遇到协程异常 kotlinx coroutines JobCancellationException StandaloneCoroutine 已取消 来自协程
  • 错误:“;”之前应有构造函数、析构函数或类型转换令牌?

    我正在尝试编译代码来测试读取和打印数据文件的函数 但出现我不明白的编译错误 错误 预期的构造函数 析构函数或 之前的类型转换 令牌 相关代码文本墙如下 struct Day int DayNum int TempMax int TempMi
  • 将此 c-cast 更改为reinterpret_cast 是否安全?

    我正在尝试从我正在处理的某些代码中删除 c 风格的强制转换 并且我对唯一的替代方案感到担忧 原来的代码是 WPARAM param WPARAM GetDlgItem IDC WORKFLOW m hWnd this gt PostMess
  • 如何使用 jQuery(schema.org 微格式)查找和读取元数据?

    我正在构建一个 Google 地图应用程序 我想读出元数据 如指定的那样schema org http schema org LocalBusiness 从我的 HTML 绘制我的地图标记 例如 li some html div class
  • 在真实的 Android 设备上运行 React Native 应用程序时无法与服务器连接

    我试图在我真正的 Android 设备上运行我的 React Native 应用程序 因为在使用 Android studio 时笔记本电脑变得太热 8 Gb RAM 痛苦 因此 我启用了 USB 调试 插入电缆并运行命令 react na
  • 远程nodejs服务器部署永远

    我正在尝试通过提交后钩子在远程计算机上部署节点js服务器 该钩子将调用远程计算机上执行实际部署的脚本 我面临的问题是 如果我在计算机上运行远程脚本 它可以正常工作 但是当我尝试通过 ssh 命令执行相同的脚本时 服务器无法启动 这就是我的提
  • 如何在对话框中托管预览处理程序

    我正在尝试在对话框中托管文件预览处理程序 我已经为资源管理器中的选择更改设置了一个事件接收器 当选择更改时 我将选定的 shell 项目提供给对话框 该对话框又将其提供给准备预览帧的函数 一般来说 它会成功加载正确的处理程序并显示文件的内容
  • vb.net dataTable/DataGridView 搜索/排序

    所以我在表单上有一个 dataGridView 和一个文本框 我希望能够搜索 dataGridView 并将其与文本框中的字符串进行比较 前任 我在文本框中输入 acv 所有包含 acv 的字符串都排序到顶部 我通过一系列涉及 datata
  • msgget() 和 mq_open 之间的区别

    我阅读了有关消息队列操作的信息 例如 msgget msgsnd 和 msgrcv 但是当我在堆栈溢出上搜索消息队列相关问题时 我发现还有另一组消息队列操作 例如 mq open mq send mq receive 谁能告诉我这两种类型的