目录
一 消息队列
消息队列是一种进程间的通讯的消息队列,能够独立于读端和写段,如果发送或者接收进程终止了,其中的消息也不会消失,并且进程可以按照类型对消息队列进行读写。
二 消息队列的相关函数
消息队列的函数定义在sys/msg.h头文件中。
2.1 消息队列的创建
int msgget(key_t key, int msgflg);
函数功能:主要是在内核创建一个消息队列。
函数参数:
1.key:主要是用于全局表示这个IPC资源:消息队列的唯一性;
2.msgflg:和信号量semget()函数的sem_flags参数的取值相同。
当该函数创建成功时,会在内核建立一个该消息队列的msgid_ds结构体变量:
struct msqid_ds
{
struct ipc_perm msg_perm;/*消息队列的操作权限*/
time_t msg_stime;/*最后一次调用msgsnd的时间*/
time_t msg_rtime;/*最后一次调用msgrcv的时间*/
time_t msg_ctime;/*最后一次被修改的时间*/
unsigned long__msg_cbytes;/*消息队列中已有的字节数*/
msgqnum_t msg_qnum;/*消息队列中已有的消息数*/
msglen_t msg_qbytes;/*消息队列允许的最大字节数*/
pid_t msg_lspid;/*最后执行msgsnd的进程的PID*/
pid_t msg_lrpid;/*最后执行msgrcv的进程的PID*/
};