2013-01-04 62 views
0
gcc 4.7.2 c89 

你好內核消息隊列的大小獲取默認值,的最大消息和最大郵件大小

我使用POSIX消息隊列:mq_create,則mq_send,則mq_receive等

我想找出kernal支持的默認消息大小(attr.msgsize)和最大消息(attr.maxmsg)。

目前,我已經做了這樣的設置默認自己:

#define MQ_MAXMSGS_DEFAULT 10 
#define MQ_MSGSIZE_DEFAULT 8192 

當我得到的命令行中的用戶輸入我會用他們,如果用戶輸入一個值來設置默認那去beyould這些默認值:

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

然而,這是不是很便攜,因爲我已經硬編碼了的時候可以在不同平臺上不同的默認值。

是否有系統調用可用於獲取默認值?

非常感謝您的任何建議,

回答

1

您可以通過從proc文件系統中讀取 的/ proc/SYS/FS/mqueue中/ msgsize_max

獲得的價值