02-Linux系统编程-04消息的队列、共享内存.pdf

02-Linux系统编程-04消息的队列、共享内存.pdf

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
02-Linux系统编程-04消息的队列、共享内存

嵌入式系统工程师 消息队列、共享内存 消息队列、共享内存 2 大纲 大纲  消息队列(message queue)  共享内存(shared memory) 33 大纲 大纲 消息队列(message queue) 共享内存(shared memory) 44 消息队列概述 消息队列概述  消息队列是消息的链表,存放在内存中,由内核维护  消息队列的特点 消息队列允许一个或多个进程向它写入或者读取消 息,并且每条消息都有类型。 消息队列可以实现消息的随机查询,消息不一定要 以先进先出的次序读取,编程时可以按消息的类型 读取。 与无名管道、有名管道一样,从消息队列中读出消 息,消息队列中数据会被删除。 同样消息队列中的消息是有格式的。 55 消息队列概述 消息队列概述 只有内核重启或人工删除时,该消息才会被删除,若 不人工删除消息队列,消息队列会一直存在于内存中  消息队列标识符,来标识消息队列。消息队列在整个 系统中是唯一的。 在Linux操作系统中消息队列限制值如下: 消息队列个数最多为16个 消息队列总容量最多为16384字节 每个消息内容最多为8192字节 66 消息队列 消息队列 System V提供的IPC通信机制需要一个key值,通过key 值就可在系统内获得一个唯一的消息队列ID。 key值可以是人为指定的,也可以通过ftok函数获得。 77 消息队列 消息队列 #include sys/types.h #include sys/ipc.h key_t ftok(const char *pathname, int proj_id); 功能: 获得项目相关的唯一的IPC键值。 参数: pathname:路径名 proj_id:项目ID,非0整数(只有低8位有效) 返回值: 成功返回key值,失败返回 -1。 88 消息队列 消息队列 创建消息队列: #include sys/msg.h int msgget(key_t key, int msgflg); 功能: 创建一个新的或打开一个已经存在的消息队列。 不同的进程调用此函数,只要用相同的key值就能得到 同一个消息队列的ID。 参数: key:IPC键值 msgflg:标识函数的行为:IPC_CREAT(创建)或 IPC_EXCL(如果已经存在则返回失败)。 返回值: 成功:消息队列的标识符,失败:返回-1。

您可能关注的文档

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档