进程间通信之消息队列
来源:互联网 发布:c语言摄氏和华氏的换算 编辑:程序博客网 时间:2024/05/14 20:33
key_t ftok( const char * fname, int id )
用于生成ID值
int msgget(key_t key, int msgflg);
通过key,获取消息队列权限或创建消息队列
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
size_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);发送接收消息函数
以下为创建发送消息的一段代码
#include <stdio.h>#include <sys/ipc.h>#include <sys/msg.h>#include <sys/types.h>struct msgbuf{ long type; char text[256];};int main(){ key_t key; int ret; int qid; struct msgbuf msg; key = ftok(".", 'a'); printf("key is %d\n", key); qid = msgget(key,IPC_CREAT|0666); if(-1 == qid) { printf("msgget error\n"); return -1; } printf("qid is %d\n", qid); msg.type = 100; (void)strcpy(&msg.text, "hello"); ret = msgsnd(qid, &msg, sizeof(msg.text), msg.type); if(ret < 0) { printf("msgsnd error\n"); return -1; } return 0;}
执行上面程序2次后
linux-o45o:~ # ipcs -q
------ Message Queues --------
key msqid owner perms used-bytes messages
0x61122012 0 root 666 512 2
#include <stdio.h>#include <sys/ipc.h>#include <sys/msg.h>#include <sys/types.h>struct msgbuf{ long type; char text[256];};int main(){ key_t key; int ret; int qid; struct msgbuf msg; key = ftok(".", 'a'); printf("key is %d\n", key); qid = msgget(key,IPC_CREAT|0666); if(-1 == qid) { printf("msgget error\n"); return -1; } printf("qid is %d\n", qid); msg.type = 100; ret = msgrcv(qid, &msg, sizeof(msg.text), msg.type, 0); if(ret < 0) { printf("msgrcv error\n"); return -1; } printf("msg is %s\n", msg.text); return 0;}
执行程序1输出
key is 1628577810
qid is 0
执行程序2输出
key is 1628577810
qid is 0
msg is hello
- 进程间通信之消息队列通信
- linux进程间通信之消息队列
- 进程间通信之消息队列篇
- linux进程间通信之消息队列
- 进程间通信之消息队列
- linux进程间通信之消息队列
- Linux进程间通信之消息队列
- 进程间通信之消息队列
- 进程间通信之消息队列
- 进程间的通信之消息队列
- 进程间通信之消息队列
- linux 进程间通信之消息队列
- 进程间通信之消息队列
- linux进程间通信之消息队列
- linux进程间通信之消息队列
- 进程间通信之消息队列
- 进程间通信之消息队列
- 进程间通信之消息队列
- android viewpager 滑动分页以及禁止划屏 (模拟新浪)
- Android系统源代码分析步骤
- 《国家地理杂志》720P 高清全集 468GB 英语中字 BT下载
- dedecms标签
- JMS:Messages Redelivery & Pending Message
- 进程间通信之消息队列
- spring + hibernate 添加用户
- Python文件及文件夹的一些操作
- php实现四则运算
- hdu 1251 统计难题
- python调用Shell脚本
- 国内外6款优秀的免费CDN服务
- 【PhoneGap Android】Google GCM推送使用插件
- Android ImageView的scaleType & setScaleType