【问题标题】:POSIX queues and msg_maxPOSIX 队列和 msg_max
【发布时间】:2012-05-20 11:38:05
【问题描述】:
我正在玩弄 POSIX 队列,但遇到了问题。创建新队列时,我可以指定例如消息的大小以及队列中可以有多少条消息。我的正常限制是 10,如
/proc/sys/fs/mqueue/msg_max
除了
之外,在程序执行期间有没有一种简单的方法来改变它
echo number > /proc/sys/fs/mqueue/msg_max
可能存在一些用于设置此类内容的系统调用。
【问题讨论】:
标签:
linux
posix
message-queue
【解决方案1】:
没有。
该限制是系统范围的限制;这就是为什么它在/proc/sys。如果你想改变它,你必须使用你已经显示的echo 命令。
【解决方案2】:
队列在创建时设置,您无法在中途更改它。您可以通过在创建队列时以特权用户身份运行来增加队列消息的数量。因此,您要么必须运行单独的程序(作为 PU)来创建队列,要么作为 PU 运行、创建队列并在完成后删除权限。您最多可以增加的消息数量仍然受到队列整体大小的限制,因此您必须进行一些划分(减去少量开销字节)。如果您在 Google 周围搜索,可以找到一个简单的公式。