System V IPC

112 篇文章 4 订阅
    最初的UNIX系统存在信号、管道和命名管道等基本的进程间通讯机制,System V出现后引入了三种高级进程间通讯机制:消息队列、共享内存和信号量。
    新引入的三个通讯机制是以对象的形式存在的,被称为IPC对象,它们存在于内核而不是文件系统中,由用户控制释放(由用户管理IPC对象的生命周期,用户不释放IPC对象,它们就会永远存在于内核之中,除非重启计算机),不像管道一样由内核控制释放。
    IPC对象通过其标识符来引用和访问,所有IPC对象在内核空间中有唯一性标识ID,在用户空间的唯一标识称为key。
    IPC对象是全局对象,可以用ipcs命令进行查看,用ipcrm命令进行删除。
    每个IPC对象都有后缀为get的函数进行创建,msgget,shmget,semget,分别为创建消息队列对象、共享内存对象、信号量对象,调用这些get函数时必须指定关键字key,这个key就是用户空间指定的键值,创建完成后在内核空间会被分配一个唯一的ID。
    下面我们说一个结构体,这个结构体被称为IPC对象的权限和拥有者结构体,上面三个IPC对象都会用到这个结构体
struct ipc_perm
{
  uid_t uid;    /*IPC对象拥有者的用户ID*/
  gid_t gid;    /*IPC对象拥有者的所在用户组ID*/
  uid_t cuid;   /*IPC创建者的用户ID*/
  gid_t cgid;   /*IPC创建这的所在用户组ID*/
  mode_t mode;  /*访问权限*/
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪流之源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值