IPC——消息队列
来源:互联网 发布:华师网络自助缴费平台 编辑:程序博客网 时间:2024/06/06 03:47
a) 本质:消息链表 b) 分类: 1. POSIX消息队列:可移植操作系统接口 2. 系统V:随内核持续的,只有在内核重启和人工删除,才会被删除。每个消息队列对应唯一的键值 c) ...
a) 本质:消息链表
b) 分类:
1. POSIX消息队列:可移植操作系统接口
2. 系统V:随内核持续的,只有在内核重启和人工删除,才会被删除。每个消息队列对应唯一的键值
c) 获取键值:Key_t ftok(char *pathname, char proj)
1. 作用:返回文件名对应的键值,本质是个文件
2. #include<sys/types.h>, #include<sys/ipc.h>
3. Pathname:文件名
4. Proj:项目名,不为0即可
d) 获取描述字:int msgget(key_t key, int msgflg)
1. #include<sys/types.h>, #include<sys/ipc.h>,#include<sys/msg.h>
2. Key:键值,由ftok获得
3. Msgflg:标志位
a) IPC_CREAT:若没有键值对应的消息队列,创建新的消息队列
b) IPC_EXCL:与IPC_CREAT一同使用,若存在返回错误
c) IPC_NOWWAIT:无法满足时,不阻塞
4. 返回值:文件描述符msgid
e) 发送消息:int msgsnd(int msqid, struct msgbuf *msgp, int msgsz, int msgflg)
1. #include<sys/types.h>, #include<sys/ipc.h>,#include<sys/msg.h>
2. Msqid:消息队列描述符
3. Msgp:存放消息的结构:
a) struct msgbuf
b) {long mtype; 消息类型,自己定义,一个类型可以存放多条消息
c) Char mtext[1];} 消息数据首地址
4. Msgsz:长度
5. Msgflg:标志,IPC_NOWAIT:指明在消息队列没有足够空间容纳要发送的消息的时候,是否等待
f) 接收消息:int msgrcv(int msqid, struct msgbuf *msgp, int msgsz,long msgtype, int msgflg)
1. 作用:从消息队列中读取msgtype类型的消息,消息被读取之后就没有了。
2. 其它同上:
3. 消息长度:length=sizeof(struct mymsgbuf)-sizeof(long)
- IPC——消息队列
- IPC——消息队列
- IPC——消息队列
- IPC——消息队列
- linux ipc—消息队列
- IPC之—消息队列
- IPC——消息队列2
- XSI IPC——System V消息队列
- IPC下的双向通信——消息队列
- linux—进程通信IPC--system v-消息队列
- Liunx进程间IPC通信—消息队列
- Linux — IPC进程通信之消息队列详解
- linux IPC-消息队列
- linux IPC-消息队列
- IPC-msg 消息队列
- Linux IPC- 消息队列
- IPC之消息队列
- IPC-消息队列
- C++使用tinyXml读取XML
- 直接拿来用!最火的Android开源项目(一)
- RSA算法完全解析(地球上最重要的算法之一)
- 多线程基础
- 黑马程序员_学习笔记第1天——dos
- IPC——消息队列
- uva784
- Java Socket通讯
- IPC——信号量(semaphore)
- 简述configure、pkg-config、pkg_config_path三者的关系
- android关于AndroidManifest.xml详细分析+1
- 头文件
- 使用Rserve远程执行R脚本
- nginx源码学习资源(不断更新)