本篇利用消息队列的特性实现简单的聊天程序,msgsnd发送数据,msgrcv接收数据来实现聊天功能,消息队列详情。
数据接收端msgrcv
//这是一个以system V消息队列实现的聊天程序客户端
1.创建消息队列
2.从消息队列中获取一个数据,打印出来
3.从标准输入中获取一个数据,组织成消息队列节点发送
4.删除消息队列
接口:
创建 msgget
接收数据 msgrcv
发送数据 msgsnd
控制 msgctl
int msgget(key_t key,int msgflg);
msgflg:
key:内核中消息队列的标识
IPC_CREAT 不存在则创建,存在则打开
IPC_EXCL 与IPC_CREAT 同用,若存在则报错 防止程序重复启动
mod 权限
返回值:一个代码操作的句柄:失败:-1
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
int msgflg);
msgid:msgget返回的操作句柄
smgp:用于接收数据
msgsz:指定接收的数据大小
msgtyp:指定接收的数据类型
msgflg:标准选项,0
#include<stdio.h>
#include<unistd.h>
#inclu