共享内存段错误,就几行代码
int main(int argc,char **argv)
{
int shm_id;
char *p_map;
shm_id=shmget(IPC_PRIVATE,1024*5,IPC_CREAT);
if(shm_id<0)
{
perror("shmget error");
return;
}
p_map=(char *)shmat(shm_id,NULL,0);//映射内存
if (p_map==NULL)
{
perror("shmget error");
return;
}
*p_map='a';// 此句出现段错误,上面不是分配了内存了吗
if(shmdt(p_map)<0)
perror("detach error");
return 0;
}
第一次用共享内存,各位指教下
------解决方案--------------------
是不是缺少权限
试试
shm_id=shmget(IPC_PRIVATE,1024*5,IPC_CREAT|0666);