大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
1.消息队列
消息队列是消息的链接表,存放在内核中并由消息队列标识符标识。 标识符是IPC对象的内部名, 而它的外部名则是key(键), 它的基本类型是key_t, 在头文件<sys/types.h>中定义为长整型.。键由内核变换成标识符。
2.消息队列的三个数据结构
linux内核采用的结构msqid_ds管理消息队列
struct msqid_ds
{
struct ipc_perm msg_perm; //消息队列访问权限
struct msg *msg_first; //指向第一个消息的指针
struct msg *msg_last; //指向最后一个消息的指针
ulong msg_cbytes; //消息队列当前的字节数
ulong msg_qnum; //消息队列当前的消息个数
ulong msg_qbytes; //消息队列可容纳的最大字节数
pid_t msg_lsqid; //最后发送消息的进程号ID
pid_t msg_lrqid; //最后接收消息的进程号ID
time_t msg_stime; //最后发送消息的时间
time_t msg_rtime; //最后接收消息的时间
time_t msg_ctime; //最近修改消息队列的时间
};
linux内核采用的结构msg_queue来描述消息队列
struct msg_queue {
structkern_ipc_perm q_perm;
time_tq_stime; /* last msgsndtime */
time_tq_rtime; /* last msgrcvtime */
time_tq_ctime; /* last changetime */
unsignedlong q_cbytes; /* current number of bytes on queue*/
unsignedlong q_qnum; /* number of messages inqueue */
unsignedlong q_qbytes; /* max number of bytes on queue */
pid_tq_lspid; /* pid oflast msgsnd */
pid_tq_lrpid; /* lastreceive pid */
structlist_head q_messages;
structlist_head q_receivers;
structlist_head q_senders;
};
syetem V IPC 为每一个IPC结构设置了一个ipc_perm结构,该结构规定了许可权和所有者
struct ipc_perm
{
key_t key; //调用shmget()时给出的关键字
uid_t uid; //共享内存所有者的有效用户ID
gid_t gid; //共享内存所有者所属组的有效组ID
uid_t cuid; //共享内存创建 者的有效用户ID
gid_t cgid; //共享内存创建者所属组的有效组ID
unsigned short mode; //Permissions + SHM_DEST和SHM_LOCKED标志
unsignedshort seq; //序列号
};
3.与消息队列有关的函数
3.1创建打开消息队列
3.2添加消息
3.3读取消息
3.4获得或修改消息队列或者删除消息队列
4.消息队列读取数据工作模式
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184271.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...