POSIX message queue
来源:互联网 发布:lol海兽祭司技能数据 编辑:程序博客网 时间:2024/05/16 17:10
http://hi.baidu.com/gaomanyi/blog/item/5a0be53620ef46380b55a955.html
POSIX消息队列可以认为是一个链表。有足够写权限的线程都可以往队列中放置消息, 有足够读权限的线程都可以从队列中取走消息, 每个消息是一个记录, 它由发送者赋予一个优先级。在某个进程往一个队列写入消息之前, 并不需要另外某个进程在该队列上等待消息的到达。
一个进程可以往某个 队列写入一些消息后终止, 让另外一个进程在某个时刻读出这些消息。我们说消息队列具有随内核的持续性。
列举函数和接口如下:
#include<mqueue.h>
mqd_t mq_open(const char *name,int oflag,.../*mode_t mode,struct mq_attr *attr*/);
int mq_close(mqd_t mqdes);
int mq_unlink(const char *name);
int mq_getattr(mqd_t mqdes,struvt mq_attr *attr);
int mq_setattr(mqd_t mqdes,const struct mq_attr *attr,struct mq_attr *attr);
int mq_send(mqd_t mqdes,const char *ptr,size_t len,unsigned int prio);
ssize_t mq_receive(mqd_t mqdes,char *ptr,size_t len,unsigned int *priop);
int mq_notify(mqd_t mqdes,const struct sigevent *notification);//异步通知消息到达:产生一个信号,或创建一个线程执行一个指定的函数
struct mq_attr{
long mq_flags; /*message queue flag*/
long mq_maxmsg;/*max number of messages allowed on queue*/
long mq_msgsize;/*max size of a message in bytes*/
long mq_curmsgs;/*number of messages currently on queue*/
};
union sigval {
int sival_int;/*integer value*/
void *sival_ptr;/*pointer value*/
};
struct sigevent{
int sigev_notify;/*SIGEV_{NONE,SIGNAL,THREAD}*/
int sigev_sigev_signo;/*signal number if SIGEV_SIGNAL*/
union sigval sigev_value;/*passed to signal handler or thread*/
/*following two if SIGEV_THREAD*/
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
};
- POSIX message queue
- 消息队列 posix message queue
- Posix message queue 消息队列
- semaphore & ipc_message posix message queue & ipc_shared Memory
- Linux POSIX Message Queue 使用体会
- Message Queue
- message queue
- Message Queue
- Message queue
- Linux IPC - Message Queue
- Message Queue: MSMQ/MQSeries
- 3.13 Message Queue任务
- windows, thread ,message queue
- Example for Message Queue
- Examining a Message Queue
- IPC SystemV Message Queue
- hdu1509 Windows Message Queue
- zoj2724-Windows Message Queue
- ldap总结
- 麦田里的守望者
- 3D MAX高版本的文件怎么保存才能在低版本中打开
- 本地PHP搭建简单测试服务器及VBscript接口测试脚本
- 突然有个想法,手机来电显示业务;JAVA
- POSIX message queue
- 詹姆斯·卡梅隆
- TestingAnywhere - 声称是QTP的替代者
- 第一篇
- OpengGL ES的内存贴图(从界面取贴图)
- linux命令详解
- ASP.NET页面刷新方法总结
- 一个ldap身份认证的具体例子
- 自动化测试ROI计算器