首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SysV消息队列数量增加

SysV消息队列数量增加
EN

Stack Overflow用户
提问于 2013-09-05 18:59:18
回答 1查看 339关注 0票数 1

我有一个场景:

1:有一个读取器进程和一个写入器进程,这些进程通过SysV消息队列进行通信。

2:写入器进程比读取器进程更快,即写入器进程在队列中写入消息的速度快于读取器进程读取消息并清空队列的速度,例如,如果我在队列(单个消息队列)中有8条消息,而读取器进程此时尚未读取一条消息,则写入器进程尝试写入(msgsnd)队列中的第9条消息。

3:如果我的任何消息被覆盖,会发生什么?

4:否则队列中的最后一条或第一条消息将被覆盖?

5:否则整个队列将被覆盖?

6:否则第9条消息就会丢失?

7:我如何确保这些情况都不会发生,我不会丢失任何新的传入消息,也不会覆盖现有的消息?

8:我该如何处理这种情况?

问候

EN

回答 1

Stack Overflow用户

发布于 2013-09-05 19:58:05

关于第三点,manpage of msgsnd

代码语言:javascript
运行
复制
When msgsnd() fails, errno will be set to one among the following values:
...
EAGAIN The message can't be sent due to the msg_qbytes limit for the queue
and IPC_NOWAIT was specified in msgflg.

因此,您将无法向队列中添加另一条消息,您需要将它们存储在其他位置。如果您在打开队列时指定了IPC_NOWAIT,则消息将丢失。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18634552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档