shmget函数在POSIX兼容的操作系统中用于创建或访问一个POSIX共享内存段。当shmget返回-1时,表示函数调用失败。为了解决这个问题,我们可以根据提供的tips逐一进行排查: 确认shmget函数调用方式正确无误: shmget函数的原型如下: c int shmget(key_t key, size_t size, int shmflg); 确保在调用shmget时,提供了正确的...
Shmget返回-1,因为尝试变量未定义,并且权限07546无效。请通过对存储段的适当权限。 #defineMEMORY_SIZE 20//size of memory segment memoryId=shmget(IPC_PRIVATE, MEMORY_SIZE , IPC_CREAT |0666);//create shared printf("%d \n", memoryId);
./book aaa shmget(5005) failed. 代码: // 获取或创建共享共存。 int m_shmid; if ( (m_shmid=shmget(SHMKEYP_,MAXNUMP_*sizeof(struct st_pinfo),0640|IPC_CREAT))==-1 ) { printf(“shmget(%x) failed.\n”,SHMKEYP_); return -1; } // 共享内存创建后,系统会自己对它进行初始化。 慕...
共享内存出自 System V 标准,是众多 IPC 解决方案中最快的一种,使用共享内存进行通信时,不需要借助...