2011-06-15 99 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