inux应用开发-消息队列
一 消息队列
用于linux系统进程间通信的一个队列
二 使用的主要函数(详细内容参看系统man手册)
1 得到消息队列号
int msgget(key_t key, int flags)
2 发送消息
int msgsnd(int msgid, const void *msgp, size_t msgsz, int msgflag)
3 接...
分类:
系统相关 时间:
2015-05-18 18:57:35
阅读次数:
210
1.基本概念
消息队列就是一个消息的链表。而一条消息则可看做是一个记录,具有特定的格式
进程可以按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。
2.函数学习
创建消息队列
函数名:msgget
函数原型:int msgget(key_t key,int msgflg)
函数功能:打开或创建消息队列
头文件:
返回值:成功:返回消息队列的id 失败:-1
参...
分类:
其他好文 时间:
2015-05-06 18:05:03
阅读次数:
189
消息发送/接收APImsgsnd函数int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);参数 msgid: 由msgget函数返回的消息队列标识码, 也可以是通过ipcs命令查询出来的一个已经存在的消息队列的ID号 msgp:是一个指针,指针指向准备发送的消息, msgsz:是msgp指向的消息长度, 注意...
分类:
系统相关 时间:
2015-02-18 19:55:57
阅读次数:
268
看了陈硕的书,说虽然有pipe, msgget, message queue, unix domain socket, 还是建议进程间只用tcp socket来通信。
pipe的缺点是阻塞。msgget缺点是不能select。mq_send可以,但是双向通信要开两个mq。unix domain不能跨网络。tcp socket优点很多,就是处理分包比较麻烦些,不过可以抽象出来。根据我的项目需要,...
分类:
系统相关 时间:
2015-01-20 22:16:33
阅读次数:
269
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
system V消息队列和posix消息队列类似,linux系统这两种消息队列都支持。先来看一下system V消息队列相关操作及其函数。
msgget()函数创建一个消息队列或打开一个消息队列。
...
分类:
系统相关 时间:
2014-12-08 19:40:20
阅读次数:
317
NAMEmq_overview —— POSIX消息队列概述DESCRIPTIONPOSIX消息队列允许进程以消息的形式交换数据。此API与System V消息队列(msgget(2),msgsnd(2),msgrcv(2)等)有明显不同,但做的事情差不多。消息队列通过mq_open(3)创建和打开...
分类:
其他好文 时间:
2014-11-29 15:44:36
阅读次数:
194
消息队列函数 #include
#include
#include
int msgget(key_t key, int msgflg);
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);...
分类:
系统相关 时间:
2014-11-29 11:58:26
阅读次数:
302
前言: 消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向其中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息函数:1.创建新消息队列或取得已存在消息队列原型:int msgget(key_t key, in...
分类:
系统相关 时间:
2014-11-13 18:18:26
阅读次数:
202
linuxmsgget返回no spaceleft首先要说的是此类标准函数应该养成查看man手册了解其用法及返回值的习惯。返回nospaceleft分为两种情况:1,创建的msgqueue个数超过整个系统限制,通过ipcs-l查看系统对msgqueue限制的具体个数,通过ipcs-q查看当前已经创建...
分类:
系统相关 时间:
2014-11-13 00:24:44
阅读次数:
411
三种IPC被称作XSI IPC,分别是:
消息队列信号量共享存储器
下面分别介绍三种IPC的用法。
1、消息队列
消息队列是消息的链接表,具有如下函数接口:
msgget:创建一个新队列或打开一个现存的队列。msgsnd:将消息添加到队列尾端。msgrcv:从队列中取消息。
我们可以自行定义一个表示消息的结构体,它由类型字段和实际数据组成:
struct ...
分类:
系统相关 时间:
2014-06-24 20:45:32
阅读次数:
319