2010-05-20 13 views
1

我收到msgsnd:使用我的程序時出現無效的參數錯誤。我注意到的另一件事是,如果文件大小是中等的,則不會發生錯誤 ,而當文件大小稍微高一些時會發生。是由於內存溢出?如果是,那麼解決方案是什麼。 Regards, Bhavin。msgsnd:無效的參數

+0

成爲程序成功的更具體的文件大小是152K和75K以及它給msgsnd的文件大小:無效的參數錯誤是336K,404K,396K。 – bhavin 2010-05-20 15:20:05

回答

2

msgsnd()返回EINVAL如果msgsz參數大於MSGMAX(它通常是一個相當小的值,如8192)。

你在用什麼msgsz

+0

謝謝caf。我發現我使用的pkt的大小几乎是12000.這是導致我prblm的pkt的大小。我們可以改變MSGMAX的價值嗎? Regards, Bhavin。 – bhavin 2010-05-21 06:43:17

+1

這取決於操作系統。在Linux上,它可以通過'kernel.msgmax' sysctl(可在'/ proc/sys/kernel/msgmax'訪問)在系統範圍內進行更改。 – caf 2010-05-21 06:58:09

+0

感謝caf,我通過在/etc/sysctl.conf文件中明確使用該參數並使用sysctl -p對其進行了更改。 再次感謝caf您的回覆。 Regards, Bhavin – bhavin 2010-05-21 11:35:42