共享内存获取失败shmget,错误码为非法参数
失败原因:
1.A shared memory segment is to be created and the value of size is less than the system-imposed minimum or greater than the system-imposed maximum。
2.No shared memory segment is to be created and a shared memory segment exists for key but the size of the segment associated with it is less than size and size is not 0.
1.分配的共享内在大小小于系统提供的最小共享内在或者大于系统提供的最大共享内存
2.申请共享内存的KEY已经存在(通过ipcs命令查看),并且现在申请的内存大于已经存在的共享内在大小。
linux共享内存相关限制查看
sysctl -a | grep shm
kernel.shmmni = oxx
kernel.shmall = oxx
kernel.shmmax = oxx
修改共享内存最大值方法
1、
sysctl -w kernel.shmmax=oxx
2、
echo oxx >/proc/sys/kernel/shmmax其他字段值修改方法一样共享内存查看和操作命令ipcs: check the shared memory allocation on a system
ipcrm: manually deallocate shared memory on a system