用消息队列进行进程间的通信,需要记住两个结构,4个函数
第一个结构:struct ipc_perm{
uid_t uid;
gid_t gid;
uid_t cuid;
gid_t cgid;
mode_t mode;
....
};
此结构主要用于用于 权限。
第二个结构:struct msgid_ds {
struct ipc_term msg_perm;
msgnum_t msg_qnum;
msglen_t msg_qbytes;
pid_t msg_lspid;
pid_t msg_lrpid;
time_t msg_stime;
time_t msg_rtime;
time_t msg_ctime;
...
};
四个函数:
int msgget(key_t key,int flag); /*创建一个消息队列结构*/
int msgctl(int msgid,int cmd,struct msgid_da *buf); /*对消息队列结构进行控制操作*/
int msgsnd(int msgid,const void *ptr,size_t nbytes,int flag); /*向消息队列发生消息*/
ssize_t msgrcv(int msgid,void *ptr,size_t nbytes,long type,int flag); /*从消息队列接受消息*/
参考文献:《unix 环境高级编程》