System V IPC进程间通信——消息队列

System V IPC

IPC 是进程间通信(Interprocess Communication)的缩写,通常指允许用户态进程执行下列操作的一组机制

  • 通过信号量与其他进程进行同步
  • 向其他进程发送消息或者从其他进程接收消息
  • 和其他进程共享一段内存

System V IPC 最初是在一个名为“Columbus Unix” 变体中引入的,现在大部分Unix系统中都可以找到。

IPC 资源

IPC资源包括信号量、消息队列、共享内存,IPC数据结构是在请求IPC时动态创建的,每个IPC资源都是持久的,除非被进程释放,否则永远驻留在内存中,直到系统关闭。根据IPC新资源时信号量、消息队列、还是共享内存区,分别调用semget(),msgget(),shmget()函数创建IPC资源。本章详细讲一下消息队列。

消息队列

进程间通过IPC消息队列通信,进程产生的每条消息都被发送到一个IPC消息队列中,这个消息一直存放在队列中,直到另外一个进程将其读走,故消息只适用于两个进程间通信。消息是由固定大小的首部,该首部是一个long int 型,用来存放消息类型和可变长度的正文组成。

创建、获取一个消息队列-msgget()

int msgget(key_t key, int msgflg)

key : 键值,每一个消息队列都有一个键值,一般有函数ftok生成,也可以自定定义&

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值