我正在尝试分配大小为64B的共享内存。但是当我给出大于27的大小时,编译器会抛出错误。如何解决这个问题。我正在使用gcc编译器。我在服务器上运行该程序。
这是我使用的代码。
shmid=(shmget(key,size,IPC_CREAT | 0666)); // size is defined as 64
我收到错误消息,指出内存分配失败。但对于27以下的尺寸,它可以正常工作
答案 0 :(得分:1)
不要使用SysV共享内存 - 界面非常糟糕,并且有许多巨大的缺点(例如,您可以使用多少限制,如果您的应用程序必须手动清理它崩溃)。如果您需要共享内存,请使用mmap()
。