版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux进程间通信之消息队列武汉华嵌嵌入式培训中心技术部在linux下有两种消息队列,一种是POSIX的消息队列,另外一种是SystemV消息队列。在这里只讲SystemV队列的使用。SystemV消息队列使用消息队列标识符标识,在某个进程往一个队列中写入一个消息之前,不求另外某个进程正在等待该队列上一个消息的到达。对于系统中每个消息队列,内核维护一个定义在<sys/msg.h>头文件中的信息结构。该结构如下:structmsqid_ds{structipc_perm
msg_perm;
/*read_writeperms:Section3.3*/structmsg
*msg_first;
/*ptrtofirstmessageonqueue*/structmsg
*msg_last;
/*ptrtolastmessageonqueue*/msglen_t
msg_cbytes;
/*current#bytesonqueue*/……}消息队列由内核进行维护,我们可以将内核中某个选定的消息队列画为一个消息链表,如下图所示:以下都是操作消息队列的API函数,在这里将对其一一讲解。创建一个消息队列。坑#i稳nc喂lu才de低<嗓sy季s/鼻ms肤g.涨h>芦in去t吓ms肤gg睁et盖(k专ey衣_t己k肤ey臣,淋in援to检f窝la怎g)影;稼该函登数在洋执行的正常阴返回翻时,蜻返回克的是前一个凤整数乱标识踏符,互其他稍三个把函数突就用域它来榜指代犹该队广列。病该标壳识符倒是基肿于指路定的序ke饭y产报生的钢,而妙ke民y即擦可以袄是f厦to刷k的辛返回弄值,夜也可顺以是絮常值捞IP彩C_营PR盟IV神AT凶E。忌of兵la葛g可队以是猪读写栗权限祸的值积的组认合,诸它还梨可以荷与I逝PC怒_C生RE省AT乱或I伐PC企_C撤RE敞AT愿|I慈PC盲_E脆XC气L按浆位或苍。厦当创只建一飞个新附消息瓶队列忘时,沟ms极qi欣d_泳ds伶结构揭的一缘些成俘员被号初始弃化。紫往一鉴个打容开的倚消息衫队列知上放尘置一认个消晶息。印感#i独nc倚lu疲de俯<振sy纳s/今ms眨g.轮h>食in探t上ms宾gs悠nd赚(i苗nt熔m截sq衡id磨,惰co面ns榆t端vo圣id偏*位pt恋r喝,恳si轿ze惨_t叉l细en穷gt枣h,庄i绢nt运f贱la纱g)调;胜该函苦数的粪第一郑参数益ms排qi阁d是源由m妨sg通ge园t的喂返回密值提片供。摄Pt苏r是拉一个卡结构宅指针面,该隔结构纵可以惑如下式定义抢:亡st喜ru损ct衬m强y_粘ms词g{醋lo隙ng排t茫yp失es末;四ch夺ar伍t熄ex共t[钳MA邪X_厨LE渔NG涛TH歇];}火该结爪构中雕的t梢yp景es效是这傲个消销息的暮类型酷,t成ex抬t这申个数苍组就鞭是发弊送的龟消息立的正情文部李份。堡ms兼gs特nd模的l东en盟gt猛h参染数以趟字节聋为单欢位指玻定待合发送铜消息型的长榴度。纯如果茶待发辱送消缸息的格结构扛如上泻定义杜,则帐le击ng姻th露的取扔值是氧si商ze队of该(s美tr逼uc选t黎my泛_m吊sg股)机–券si算ze拉of岁(l狐on变g)席。第苍四个队参数剃fl乞ag伤即可企以是隆0,唉也可划以是盐IP买C_志NO低WA幕IT熄。当睬fl艺ag贤是0痛时,骆使得轮ms袖gs镜nd慨调用树阻塞惨,如悄果是厕IP鸽C_退NO幅WA柄IT没,使牌得m幕sg丈sn响d调绳用非治阻塞吵。维使用倦ms松gr赢cv描函数邻从某浊个消案息队牛列中搞读出壁一个昌消息平。慨#i狸nc运lu锻de朋<决sy钥s/粗ms些g.际h>财ss捏iz推e_亭t挡sm谣gr刑cv夏(i饶nt纳m源sq砍id俊,年vo诊id蜓*丧pt闸r,墨s柿iz兵e_极t围le款ng跟th添,烈lo素ng熔t舍yp北e,仪i偶nt毕f棵la灶g)即;尾其中盛pt坐r参佛数指菠定所料接收混消息外的存提放位贯置,临和m街sg享sn糊d一捕个,酱该指边针指伸向紧话挨在铁真正火的消断息数愤据之霞前返垒回的简长整射数类桥型字灯段。也Le技ng烈th海指定威了由素pt扑r指赚向的糠缓冲熊区中戴数据呈部分闹的大馅小,晶这是葵该函拳数能康返回辨的最陶大数电据量呼,该尿长度惭不包挖含消欧息类碎型占越的字论节数我。t座yp胶e指蹈定希促望从俭消息杠队列吹中读耍出什过么类撞型的吴消息器,t冒yp结e以兆下的忆几种育取值铃有不唉同的亦效果筑,如闻下:推⑴、泰ty恋pe妻为0糠时,嘱则返最回队生列中缎的第明一个付消息煎,也卖就是丘最早伟的那掌个消愁息。达⑵、悠ty良pe农为大默于0慨时,叹则返串回其联类型圾值为温ty正pe党的第顺一个牙消息跨。玻⑶、维ty坚pe拳为小骗于0自时,逢则返婶回其厦类型絮值小限于或涂等于可ty膝pe就参数鹅的绝傻对值殊的消愈息中冒类型骨最小音的第冒一个息消息么。f档la蒜g的诊可能银取值米同m羽sg灶sn贷d一敬样,宋代表捆着同劳样的涂意思党。只漆不过像ms严gr克cv江多了绢一个蓝选择杆,那鼓就是叔MS率G_瘦NO咱ER谨RO问R,新如果象设置杯了该竖位,尿当所甚接收闪消息亲的真繁正数女据部日分大头于l贸en张gt街h参亦数时退,m番sg卡rc晴v只涨截短金数据听部分鹅,面乎不返纺回错互误。靠该函焦数成虚功返观回时丽,m胁sg勺rc叮v返民回的惊是所葡接收趴消息娱中数凑据的袄字节特数。蚂它不耀包括搜消息创类型位所占筛有字兆节数城。粥使用烤ms耀gc方tl五对消惜息队冷列进倡行控掏制。孕淘#i诞nc搭lu丈de仓<怕sy兽s/蛇ms圈g.为h>且in夸t使ms锋gc刷tl潜(i搅nt棍m轨sq玩id岔,雁in侍t央cm圈d,采s钓tr毫uc菠t诸ms霉qi剂d_旺ds勤*裤bu跃ff拦);泪该函民数提子供了循三个罪控制强命令台,分孝别如女下:拣I抢PC罚_R冈MI灶D
明薪衰从系爱统中萝删除董由m舱sq委id徐指定三的消展息队虽列,慕对于陆该命胁令,丙ms虎gc稳tl绳第三裕个参恐数被垫忽略歉。构IP殊C_料SE胡T
夸辅披胞给所扇指定念的消铜息队惑列设股置其胆ms趟qi德d_融ds梅结构络的几骨个成鼠员。际IP肠C_验ST河AT涝阻记翻给调太用者领返回熊与所夸指定少消息啄队列言对应锈的当老前m密sq反id汗_d岗s结舌构。蜡总结窜:徐消息适队列包是由垄内核双维护相的,位也就泼是说肆消息扑队列暮是随步内核幅持续尊性的础。在林进程咽结束滴的时政候,热消息寄队列描并消杆失,邪只有窗在显孝示的涛删除佩消息杨队列减或者歼在内肆核自怀检的楼时候由,消棍息队啄列才联会删菜除。索婚以下补是使钞用消仪息队粥列例众子:织发送涂进程痒:补#i宿nc曲lu欧de失<臭st仁di恼o.艳h>释#i罩nc杂lu熄de氏<予er别rn讽o.例h>非#i猫nc档lu户de望<气st竿ri乒ng设.h奴>劳#i不nc佩lu能de季<冰sy蒜s/逝ip汗c.茶h>喊#i议nc使lu层de脸<乌sy纱s/纸ms榜g.势h>班#i局nc信lu世de饮<要sy倍s/熄ty怪pe武s.舌h>促#d涛ef吐in绘e版MA萝X_轧MS枝G_喊LE讯NG迟TH喷1笔02很4持//纷自己拾定义絮的消锤息格导式贿ty用pe符de丽f疾st揪ru列ct尽m遮sg冒bu掀f{弯lo局ng储t请yp彩es暗;姑ch耽ar孟t挂ex琴ts众[M烈AX屈_M衬SG诊_L德EN鲜GT谱H]千;车}S锤YS禁_M字SG舰;优in构t伪ma晃in排(){培in塔t毙ms典gi处d;钓ke廉y_理t瞧ke话y;认in肿t映re所tv鬼al割;死SY程S_妇MS巾G毅my蚊bu胖f;舒if漫((碍ke搜y啊=谣ft慕ok倘("雁/"棒,榆4)教)燃<被0){餐竿朋智执哥p扰er洁ro隐r(惹"f惕to嫁k"涌);}械if魂((求ms挪gi铃d缺=煌ms爆gg草et饭(k腰ey约,怒IP干C_棉CR膜EA坑T|沃07嘱77茂))孙<蠢0旨){烤模挣答沙畏p跨er蓝ro旦r(舞"m冷sg政ge劳t"赤);}迅my障bu睬f.解ty敏pe耽s等=删1;缓st初rc口py亭(m主yb辨uf阻.t者ex率ts分,葡"h妇el声lo原w绪or利ld碌")埋;初if杂((课ms敌gs扩nd东(m来sg桶id通,桨&m钞yb自uf扎,捆MA涌X_开MS厦G_磨LE枣NG馅TH匹,晶0)舱))转染//善发送东消息酷类型旦为1扬的消稳息。{惜炕眠呆却降p辉er海ro圣r(葵"m趟sg仅sn肃d"埋);}激my骡bu括f.蝴ty哀pe卖s剂=现2;辟st小rc切py君(m纳yb查uf信.t荡ex捧ts蜘,眼"h露ow球a爸re革y宏ou帖")西;处if小((宏ms滩gs团nd耗(m张sg偏id敞,嘴&m毫yb苹uf流,描MA快X_翅MS些G_象LE唱NG用TH棒,继0)蝇))撞免//冈发送吴消息漫类型监为2辜的消下息。{蝇拍谜经亦秀p动er讽ro贪r(仿"m项sg凤sn狮d"纲);}质my倚bu叉f.碗ty屿pe鸽s慰=善3;沈st涌rc桥py尝(m莫yb榨uf浸.t乖ex躲ts验,准"i跪'm穗f友in旨e"娱);茧if断((愧ms董gs智nd垂(m政sg架id胆,争&m泳yb蜂uf渡,豪MA咽X_瞧MS屈G_窑LE肃NG顾TH哄,景0)尝))孝君//朱发送净消息绘类型册为3纪的消兴息。{伙归奖稍歇亲p磨er心ro嗽r(窄"m黎sg春sn纺d"呆);}疑re村tu笔rn轻0央;}情接收恰进程冬:疤#i奔nc牙lu动de宣<副st亡di蜂o.敬h>未#i骑nc辉lu霜de弃<芳er垄rn猫o.所h>滔#i明nc饰lu始de悔<晒st下dl环ib震.h屈>僻#i撞nc盈lu测de段<境st剖ri嫁ng祖.h寻>喉#i竭nc减lu棕de线<具sy冰s/撞ip熔c.舍h>具#i应nc斯lu经de格<娘sy感s/省ms释g.咽h>渗#i毫nc驼lu禾de眨<蹄sy回s/再ty维pe因s.含h>柏#d梯ef鄙in兆e烛MA列X_万MS骨G_推LE喊NG属TH驾5逐ty状pe蛋de予f坡st颜ru仇ct灭m侍sg诞bu姻f{彼lo厅ng堡t多yp村es梢;民ch场ar诊t莫ex宇ts妄[M陵AX邀_M凤SG为_L羽EN灵GT救H]蝶;崖}S形YS黄_M埋SG骂;讨in考t线ma源in敬(){闪in别t则ms燥gi剧d;岔ke尼y_忙t纸ke草y;垂in俘t秃re郊tv色al抚;逢SY绿S_婆MS葛G蓬my券bu变f;滥if示((剃ke农y捡=前ft品ok男("写/"毅,宪4)执)出<行0){码啄绍多妖滥p摇er江ro狗r(路"f猛to起k"欲);}尊if调((鸦ms珍gi欲d约=晓ms推gg殖et槐(k叮ey奔,缠IP凝C_毕CR藏EA易T|叠07固77码))起<顺0贫){踢懒楚绵作必p撞er销ro返r(散"m恐sg昆ge滔t"机);}野wh臭il渣e(杜1){略额悬攻正抵/驳/输洞入想番接收础的消格息类蔽型物脖锄于担只s蜓ca比nf茅("偶%l晋d"若,寸&m挺yb政uf被.t符yp跳es肚);尽地宏羡雁饺m现em曲se舅t(糟my刻bu膨f.饥te欠xt患s,钉0父,垂MA忍X_来MS史G_险LE猛NG汁TH供);而妹留抵恨峰i监f(枪0卸==伸m拆yb翼uf某.t井yp结es呜)李谅龄北蝶轧{港易圆稀宪恭扰怎摆驶令br闹ea方k;荐裹为酿弟捧}荐暑所绵骄皆绒具俯剑卫/叛/接针收消抄息类睛型为甜上面所输入像的消怨息类统型此铜虑将干抱i丈f(判(域ms砌gr重cv耗(m读sg各id筋,焰&m些yb致uf剥,感MA焰X_哨MS刺G_雷LE畜NG贼TH陵,省my议bu详f.吓ty誉pe传s,登M深SG蜓
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专用打印机采购销售协议范本
- 2024年个人借款协议模板
- 2024年家用壁纸买卖协议模板
- 2023-2024学年浙江省余姚八中高考第四次模拟数学试题试卷
- 2024年企业融资中介协议范本
- 2024无财产瓜分离婚协议示范文本
- DB11∕T 1717-2020 动物实验管理与技术规范
- DB11∕T 1601-2018 毛白杨繁育技术规程
- 2024设备维护与保养协议范本
- 2024年专业收银员岗位聘用协议样本
- 基本函数的导数表
- 酒店的基本概念
- 重点但位消防安全标准化管理评分细则自评表
- 挂牌仪式流程方案
- 传输s385v200v210安装手册
- 风险调查表(企业财产保险)
- 农业信息技术 chapter5 地理信息系统
- 浅谈新形势下加强企业税务管理的对策研究
- 必看!设备管理必须要懂的一、二、三、四、五
- 空冷岛专题(控制方案、谐波及变压器容量选择)
- 结合子的机械加工工艺规程及铣槽的夹具设计
评论
0/150
提交评论