系统初始化共享内存的时机?
来源:2-13 -1 进程的心跳机制

qq_慕运维4167369
2022-03-20
//创建/获取共享内存,大小为n*sizeof(struct st_pinfo)
int m_shmid = 0;
if((m_shmid=shmget(SHMKEYP_,MAXNUMP_*sizeof(struct st_pinfo),0640|IPC_CREAT))==-1)
{printf("shmget(%x) failed.\n",SHMKEYP_); return -1;}
//将共享内存连接到当前进程的地址空间
struct st_pinfo *m_shm;
m_shm=(struct st_pinfo *)shmat(m_shmid,0,0);
系统对共享内存初始化是在shmget(SHMKEYP_,MAXNUMP_*sizeof(struct st_pinfo),0640|IPC_CREAT)
时还是在shmat(m_shmid,0,0);
时?请详细说明一下理由,谢谢。
写回答
1回答
-
长歌_吴从周
2022-03-20
当然是shmget,shmget是创建并获取共享内存,shmat只是连接地址空间,意义完全不一样。
00
相似问题