Linux常见错误 shmat: Permission denied

本文探讨了在使用共享内存时遇到的权限拒绝问题,通过修改shmget函数参数仍未解决,最终更换ftok函数的项目ID解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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);

完成!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值