2011-06-15 98 views
-1

我正在嘗試分配大小爲64B的共享內存。但編譯器會拋出錯誤,當我給超過27的大小..如何解決這個問題。我正在使用gcc編譯器。我正在服務器上運行程序。分配共享內存時出錯

這是我使用的代碼。

shmid=(shmget(key,size,IPC_CREAT | 0666)); // size is defined as 64 

我收到一個錯誤,說內存分配失敗。但對於27歲以下的大小,它工作正常

+1

你能給我們一個**完整的例子來證明這個問題嗎? – JesperE 2011-06-15 05:38:56

回答

1

不要使用SysV共享內存 - 接口非常糟糕,並且有一些巨大的缺點(例如,有多少可用的嚴格限制,必須手動清理,如果你的應用程序崩潰)。如果您需要共享內存,請使用mmap()

+0

謝謝你duskwuff – CHID 2011-06-15 06:21:20