搜索
当前位置: 秒秒彩平台 > 读整数内存 >

在linux中共享内存里分别存放了整数和字符怎么将它们分别取出来

gecimao 发表于 2019-06-11 09:43 | 查看: | 回复:

  毕业于曲阜师范大学,学士学位。互联网行业2年从业经验,读过SEO相关书籍。现任爱家网SEO优化专员。

  在IPC中,我们经常用用key_t的值来创建或者打开信号量,共享内存和消息队列。

  3)proj_id是一个1-255之间的一个整数值,典型的值是一个ASCII值。

  当成功执行的时候,一个key_t值将会被返回,否则-1被返回。我们可以使用strerror(errno)来确定具体的错误信息。

  考虑到应用系统可能在不同的主机上应用,可以直接定义一个key,而不用ftok获得:

  shmget()用来获得共享内存区域的ID,如果不存在指定的共享区域就创建相应的区域。

  key_t key 是这块共享内存的标识符。如果是父子关系的进程间通信的话,这个标识符用IPC_PRIVATE来代替。如果两个进程没有任何关系,所以就用ftok()算出来一个标识符(或者自己定义一个)使用了。

  例子中的0666为权限标识,4/2/1 分别表示读/写/执行3种权限,第一个0是UID,第一个6(4+2)表示拥有者的权限,第二个4表示同组权限,第3个0表示他人的权限。

  获取已创建的共享内存时,shmflg不要用IPC_CREAT(只能用创建共享内存时的权限标识,如0640),否则在某些情况下,比如用ipcrm删除共享内存后,用该函数并用IPC_CREAT参数获取一次共享内存(当然,获取失败),则即使再次创建共享内存也不能成功,此时必须更改key来重建共享内存。

本文链接:http://latharnaog.com/duzhengshunacun/417.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部