October 2017
Intermediate to advanced
354 pages
9h 28m
English
Each message queue is created by enumerating a set of data structures by the underlying SysV IPC subsystem. struct msg_queue is the core data structure, and an instance of this is enumerated for each message queue:
struct msg_queue { struct kern_ipc_perm q_perm; time_t q_stime; /* last msgsnd time */ time_t q_rtime; /* last msgrcv time */ time_t q_ctime; /* last change time */ unsigned long q_cbytes; /* current number of bytes on queue */ unsigned long q_qnum; /* number of messages in queue */ unsigned long q_qbytes; /* max number of bytes on queue */ pid_t q_lspid; /* pid of last msgsnd */ pid_t q_lrpid; /* last receive pid */ struct list_head q_messages; /* message list */ struct list_head q_receivers;/* reader process list ...