加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用于附加共享内存段的shmat

发布时间:2020-12-16 05:02:10 所属栏目:百科 来源:网络整理
导读:当我浏览shmat的手册页时.它被描述为API的原始函数是将与shmid关联的内存段附加到调用进程的地址空间. 我的问题如下. 术语附件对我来说是通用的.我发现很难理解附着所指的基本活动是什么. 通过映射一段内存意味着什么? 解决方法 将它用作char * ptr = shmat
当我浏览shmat的手册页时.它被描述为API的原始函数是将与shmid关联的内存段附加到调用进程的地址空间.

我的问题如下.

>术语附件对我来说是通用的.我发现很难理解附着所指的基本活动是什么.
>通过映射一段内存意味着什么?

解决方法

将它用作char * ptr = shmat(seg_id,NULL,0);
它通过函数shmget()将创建的段id附加到包含上述代码的进程.

seg_id是新创建的段的段ID
NULL表示操作系统将代表用户处理段的起始地址
0是读/写两者的标志

每当进程附加到共享内存时,它必须被分离,以便另一个进程可以通过附加到该段来访问它(如果存在资源的锁定机制).

分离:shmdt(ptr);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读