首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shmget返回ENOMEM,12可用

shmget返回ENOMEM,12可用
EN

Stack Overflow用户
提问于 2013-10-14 23:09:00
回答 1查看 312关注 0票数 1

我尝试使用shmget()分配22MB的共享内存,但它以errno ENOMEM退出。top输出的第一行看起来似乎有足够的内存:

代码语言:javascript
复制
Processes: 114 total, 4 running, 110 sleeping, 579 threads
Load Avg: 0.50, 0.42, 0.35  CPU usage: 0.24% user, 0.60% sys, 99.15% idle
SharedLibs: 17M resident, 5356K data, 0B linkedit.
MemRegions: 20375 total, 1361M resident, 59M private, 1176M shared.
PhysMem: 1487M wired, 1887M active, 576M inactive, 3950M used, 12G free.
VM: 286G vsize, 1052M framework vsize, 123007(0) pageins, 0(0) pageouts.

该程序在OS版本10.8.5上运行。知道原因是什么吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-23 20:21:06

以下sysctl变量会影响共享内存: kern.sysv.shmmax、kern.sysv.shmmin、kern.sysv.shmmni、kern.sysv.shmseg、kern.sysv.shmall。这里,kern.sysv.shmall通常应设置为至少kern.sysv.shmmax除以4096。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19363363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档