key_t key=ftok(".",4321);
int shmid=shmget(key,4096,IPC_CREAT);
if(shmid<0)
{
perror("shmget");
return -1;
}
关于存储映射问题,运行测试程序的时候,出现以下错误
shmat: Permission denied
翻译之后:shmat:权限被拒绝
函数其中一处修改为:
int shmid=shmget(key,4096,IPC_CREAT|0666);
还是出现相同问题。
使用命令:ipcs
发现已经创建了共享内存。
那就再换一个
key_t key=ftok(".",43210);
int shmid=shmget(key,4096,IPC_CREAT|0666);
完成!
本文探讨了在使用共享内存时遇到的权限拒绝问题,通过修改shmget函数参数仍未解决,最终更换ftok函数的项目ID解决了问题。
2万+

被折叠的 条评论
为什么被折叠?



