当前位置:  技术问答>linux和unix

请教关于共享内存函数shmget的键值和id问题

    来源: 互联网  发布时间:2017-05-10

    本文导语:  int shmid shmget(key_t shm_key,int size,mode);在这个函数中,第一个参数键值和返回值id都是用来识别共享内存的标识的。一般来说,对象有一个标识就够了,为什么共享内存既要键值,又要id呢? | ...

int shmid shmget(key_t shm_key,int size,mode);在这个函数中,第一个参数键值和返回值id都是用来识别共享内存的标识的。一般来说,对象有一个标识就够了,为什么共享内存既要键值,又要id呢?

|
可以这样解释吧,key_t对应的是ftok结构的一个hash值,或者称为索引,有了这个key_t,shmget创建相应IPC对象结构:
struct ipc_perm 
{
key_t       key;     /* Key supplied to semget(2) */
uid_t        uid;     /* Effective UID of owner */
gid_t        gid;     /* Effective GID of owner */
uid_t        cuid;    /* Effective UID of creator */
gid_t        cgid;    /* Effective GID of creator */
unsigned short   mode;   /* Permissions */
unsigned short     seq;    /* Sequence number */
};
显然通过key_t是可以定位这个结构的,但是是不是得查找,然后再比较才能确认?
如果这样还不如直接使用这个对象的地址,也就描述符来定位。
因此,key_t只是IPC对象结构的一个属性,而描述符可以认为是IPC对象的地址,通过描述符可以
很方便的查找到对象。

    
 
 

您可能感兴趣的文章:

  • 高分请教:怎样在Kdevelop不能够Trace构造函数?(其他函数可以Trace)
  • 请教:javascript 里有没有时间循环执行的函数,如我按住鼠标触发mousedown 事件函数时,反复执行我写的一个函数?
  • 请教semop()函数的用法、含义
  • 请教套接字中的select()函数问题
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教一个关于ftw函数的问题!
  • 100分请教高手一个bash函数
  • 请教signal函数的用法!
  • 请教exec系列函数的用法
  • 请教UNIX C字符输入的检测函数?
  • 请教关于dlopen,动态库连接程序的输出函数
  • 请教select函数
  • (菜鸟请教)还有修改/etc/passwd文件用什么函数呢?
  • linux下time函数问题请教高手
  • 请教一个网络编程问题,accept函数的,在线等,急。。。
  • 请教一个取时间的函数,急!!!!!!!!!!!!!!!!
  • 请教,JavaScript中能不能调用JSP写的函数?
  • 请教:clock_gettime函数的使用问题
  • 请教 变量= { function:函数名};什么意思
  • signal 函数请教
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 请教!Linux系统C开发的程序,为什么我的程序运行时内存持续增长,程序退出后内存也没有降低?
  • 请教redhat9上如何进行内存整理
  • 请教Linux内存分配策略与Windows有何异同?
  • 请教一个内存方面的问题
  • 请教几个虚拟内存的问题!谢谢
  • 请教一个AIX下内存分配的问题
  • 请教: gdb中能否打印内存中某个位(或某些位)的值???
  • 请教多线程程序的内存占用问题
  • 请教POSIX 和 System V 实现的内存共享的相同及不同之处
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • mysql iis7站长之家
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,