c - 分配共享内存时出错

标签 c shared-memory

我正在尝试分配大小为 64B 的共享内存。但是当我给出的大小超过 27 时,编译器会抛出错误。如何解决这个问题。我正在使用 gcc 编译器。我正在服务器上运行该程序。

这是我使用的代码。

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

我收到一条错误消息,指出内存分配失败。但对于 27 以下的尺寸,效果很好

最佳答案

不要使用 SysV 共享内存——该接口(interface)非常糟糕,并且有许多巨大的缺点(例如,对可以使用的内存量有严格的限制,如果您的应用程序必须手动清理它)崩溃)。如果您需要共享内存,请使用mmap()

关于c - 分配共享内存时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6353479/

相关文章:

c - 有没有办法在读取文本文件后删除第一个字符?

c - 结构填充

c- strncmp "end"一段时间不会终止循环

python-2.7 - 在进程之间共享字典

c++ - 如何将 STL 对象存储在共享内存(C++)中?

python - 使用共享内存从单独的 C 进程访问 numpy 数组

c - nmake 相当于 mingw 命令

c - 在c中的文件中搜索字符串

c++ - 在消费者进程中 boost 共享内存和同步队列问题/崩溃

c - 将文件中的数据存储到结构数组中