【问题标题】:Getting default values for the kernel message queue size for maximum messages and maximum message size获取最大消息和最大消息大小的内核消息队列大小的默认值
【发布时间】:2013-01-04 08:48:56
【问题描述】:
gcc 4.7.2 c89

你好,

我正在使用 posix 消息队列:mq_create、mq_send、mq_receive 等。

我正在尝试找出内核支持的默认消息大小 (attr.msgsize) 和最大消息 (attr.maxmsg)。

目前我已经这样做了自己设置默认值:

#define MQ_MAXMSGS_DEFAULT 10
#define MQ_MSGSIZE_DEFAULT 8192

当我在命令行上收到用户的输入时,如果用户输入的值超出这些默认值,我将使用它们来设置默认值:

long msg_size = atol(optarg);
attr->mq_msgsize = 
    (msg_size > MQ_MSGSIZE_DEFAULT ? MQ_MSGSIZE_DEFAULT : msg_size);

但是,这不是很便携,因为我已经硬编码了默认值,而在不同平台上可能会有所不同。

是否有可用于获取默认值的系统调用?

非常感谢您的任何建议,

【问题讨论】:

    标签: c message-queue


    【解决方案1】:

    您可以通过从 proc 文件系统中读取来获取值 /proc/sys/fs/mqueue/msgsize_max

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 2021-10-10
      相关资源
      最近更新 更多