检查 Unix 消息队列是否为空

2024-05-24

谁能告诉我如何检查消息队列中是否有消息。 消息队列是在基于Linux的操作系统中用C语言实现的。 我只是想检查在特定时间消息队列中是否有消息。


只需使用以下命令即可检查消息数量(如果有)

msgctl() 

函数,并在返回时检查 msqid_ds 结构,该结构中的 msg_qnum 是队列中的消息数量。这是一个带有示例的链接:消息控制示例 http://uw714doc.sco.com/en/SDK_sysprog/IC_CntllMsgQueues.html#ipc_i6,它的作用比您想要的更多,但是在 msgctl() 调用之后,您只需检查我上面提到的结构中的该字段。

#include <sys/msg.h>

main() {
  int msqid = 2;
  int rc;
  struct msqid_ds buf;
  int num_messages;

  rc = msgctl(msqid, IPC_STAT, &buf);
  num_messages = buf.msg_qnum;
}

这个例子应该做你想做的事,并且只做你想做的事。

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

检查 Unix 消息队列是否为空 的相关文章

随机推荐

  • 按值对 geom_bar ggplot2 中的条形重新排序

    我正在尝试制作一个条形图 其中的图是从miRNA与最高的value to the miRNA与最低的 为什么我的代码不起作用 gt head corr m miRNA variable value 1 mmu miR 532 3p pos
  • NuGet 和可移植类库 - 包不针对任何框架

    我已经使用 NuGet 来管理内部创建的程序集几个月了 而且它运行得很好 我最近 发现 了可移植类库 这也很棒 直到安装软件包为止 假设我有一个针对 Windows 应用商店应用程序的 NET 4 5 SL5 和 NET 的 PCL 我跑n
  • 应用程序终止和设备重启后 PushKit 通知未到达

    借助 PushKit 我的 iOS 应用程序即使已关闭也能成功接收 VoIP 推送通知 失败时只有一个条件 如果我通过标准任务切换器刷出 终止 我的应用程序并重新启动我的设备 起初 我在重新启动设备后就遇到了这个问题 如这个问题所述 排除启
  • CLOCKS_PER_SEC 与 std::clock() 的结果不匹配

    我正在使用以下短程序来测试std clock include
  • Knockoutjs foreach 自定义绑定处理程序与 afterAdd

    我想构建一个自定义的绑定处理程序 ko bindingHandlers foreachWithHighlight 在afterAdd时具有高亮效果 来自文档 http knockoutjs com documentation foreach
  • 使用 HTML 文本预填充 Gmail 撰写屏幕

    我发现要打开 Gmail 撰写屏幕 您必须登录并打开以下链接 替换变量填充撰写表单上的相应位置 但是 如果我想输入正文多行文本或换行符 即使我对它进行 urlencode 它也不起作用 这里有什么想法吗 检查您的 UrlEncode 方法是
  • 类型错误:$(...).dialog 不是函数

    我正在尝试将基本的 CMS 集成到我的网站中 经过三天的努力 我仍然遇到这个问题 我已经厌倦了我所知道的一切 并做了一些研究 发现了很少的答案 但没有一个真正解决了问题 我使用 Firebug 检查错误和错误 显示的错误是 TypeErro
  • 单击标记时 agm-marker iconUrl 发生变化

    我试图在单击标记时更改其 iconUrl 我正在使用有角度的谷歌地图 iconUrl 我使用本地资产文件夹而不是服务 API 进行设置
  • 错误:没有这样的属性:类的manifestPlaceholders:com.android.build.gradle.management.ProductFlavor

    I use gradle experimental 0 4 0 我想在我的项目中使用 onesignal sdk 当我尝试使用此处示例中提到的代码构建项目时 我收到此错误 错误 没有这样的属性 类的manifestPlaceholders
  • 安卓市场API

    有谁知道Android市场是否有一个API 可以自动提交新应用程序 而无需手动填写市场表格 不 抱歉 没有程序化的方式来提交市场列表 据推测 这是一种反垃圾邮件发送者措施
  • 我如何(或者应该?)从 Grails 中的 SiteMesh 模板 (views/layouts/main.gsp) 访问服务层?

    我需要在我正在构建的网站的页脚中创建一个顶部列表 页脚是在默认的 SiteMesh 布局模板中创建的 views layouts main gsp 为了创建顶部列表 需要访问数据库 因此我将创建顶部列表所需的所有逻辑封装在服务类中 serv
  • 使用 AAACertificateServices 证书的域示例

    如何找到根证书为的域AAA证书服务 https support sectigo com Com KnowledgeDetailPage Id kA03l00000117cL 请注意 这是 Comodo 证书 为了准备一个其证书即将更改的依赖
  • ExpressJS 后端将请求放入队列

    我有客户端发送要由服务器执行的任务 但这些请求应该以类似队列的方式处理 知道我该怎么做吗 谢谢 express Router post tasks function req res This is the task to perform W
  • Android 上谷歌地图的缩放事件

    我们正在构建一个使用 Android 版谷歌地图 API 的应用程序 我有我的 MapController 和 MapView 并且我使用以下方法启用内置缩放控件 mapView setBuiltInZoomControls true 我现
  • Yii urlManager URL 中的语言

    我正在尝试使用以下语法向 url 添加语言 http www example com en site page view about http www example com en site page view about 到目前为止 我所
  • 如何将 application.properties 转换为地图的 application.yml

    我试过了 还是不行 请问我哪里出错了 application properties 工作正常 document contact name joe email email protected cdn cgi l email protectio
  • 更改 pyttsx3 语言

    当尝试使用 pyttsx3 时 我只能使用英语语音 我也希望能够使用荷兰语 我已经在 Windows 设置菜单中安装了文本转语音语言包 但我仍然只能使用默认的英文语音 我怎样才能解决这个问题 如果您想更改语言 您需要更改为支持您的语言的另一
  • 使用 writeLines 将变量写入文件

    我发现此链接对于理解如何将行写入文件非常有帮助 将文本行写入 R 中的文件 https stackoverflow com questions 2470248 write lines of text to a file in r 不幸的是
  • Microsoft 身份 - 撤销授权

    我正在开发一个 NET 应用程序 它可以使用 Graph API 代表用户发送电子邮件 提示用户对应用程序进行授权 然后使用获取的访问令牌来调用 Graph API 刷新令牌用于在旧访问令牌过期时颁发新的访问令牌 如下所述 https le
  • 检查 Unix 消息队列是否为空

    谁能告诉我如何检查消息队列中是否有消息 消息队列是在基于Linux的操作系统中用C语言实现的 我只是想检查在特定时间消息队列中是否有消息 只需使用以下命令即可检查消息数量 如果有 msgctl 函数 并在返回时检查 msqid ds 结构