struct msqid_ds {
struct ipc_perm msg_perm; /* opération permission struct */
struct __msg *msg_first; /* ptr to first message on q */
struct __msg *msg_last; /* ptr to last message on q */
unsigned short int msg_qnum; /* # of messages on q */
unsigned short int msg_qbytes; /* max # of bytes on q */
pid_t msg_lspid; /* pid of last msgsnd */
pid_t msg_lrpid; /* pid of last msgrcv */
time_t msg_stime; /* last msgsnd time */
time_t msg_rtime; /* last msgrcv time */
time_t msg_ctime; /* last change time */
unsigned short int msg_cbytes; /* current # bytes on q */
char msg_pad[22]; /* room for future expansion */
};