找回密码
 注册
关于网站域名变更的通知
查看: 356|回复: 1
打印 上一主题 下一主题

Linux进程间通信(9)消息队列之msgget()、msgsnd()、msgrcv()及其基础实验

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-25 10:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Linux进程间通信(9)消息队列之msgget()、msgsnd()、msgrcv()及其基础实验. }2 E  B2 R. t! N9 t
! l' ^1 m1 v3 ]! @" Q* L
概述" X0 A3 [, E  F" l1 B- o3 p7 J
5 q* o0 Z7 V/ D/ Y! q# c
   消息队列,就是一些消息的列表,用户可以在消息队列中添加消息和读取消息等。从这点上看,消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,比FIFO具有更大的优势。同时,这些消息又是存在于内核中的,由“队列ID”来标识。
5 t8 n) m. F- C  A; V; N* P, p
( u: }: z7 L2 q消息队列的实现操作) H  r0 u* F5 b& j; m' r1 O

5 y0 ~& A) e5 _& J; D  ①  创建或打开消息队列。使用的函数是msgget(),这里创建的消息队列的数量会受到系统消息队列数量的限制。$ I/ n+ y8 D# _' A5 W: d

; d2 |- }7 Y- k3 [+ {  ②  添加消息。使用的函数是msgsnd(),它把消息添加到已打开的消息队列末尾。
( k, X1 x, U' ^# f6 D2 Q# {: f' K* Z0 b, H
  ③  读取消息。使用的函数是msgrcv(),它把消息从消息队列中取走,与FIFO不同的是,这里可以取走指定的某一条消息。. A2 N; z* o8 C
* H$ I/ X8 L, k( R) t
  ④  控制消息队列。使用的函数是msgctl(),它可以完成多项功能。
, A% Q3 Z3 {& J6 q( ^- J% l9 G0 J1 P3 x! o* p5 p, t' S9 }
函数格式
6 b" c/ y- G6 `% P) u7 w
' q( ~5 q+ ?/ f! Y+ T& d' m
游客,如果您要查看本帖隐藏内容请回复
' o; n/ n" y3 }8 M2 @: ~8 Y" U, _5 u
  
3 T5 _4 i9 N$ q$ ]
) }) ]+ v1 M/ L7 l+ ~! u $ k" I. Y$ z3 L3 E
; f2 [5 R, S* M7 o4 Z) ?

' T. z4 X; H) s7 Z0 ?6 V8 N
$ ?7 Q  j; U  J1 {
4 V2 L8 G3 @9 x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 02:00 , Processed in 0.171875 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表