当前位置: 技术问答>linux和unix
IPC 通信中的msgsnd,msgrcv 中的msgsz到底取什么值呢?
来源: 互联网 发布时间:2015-12-23
本文导语: msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msg-typ, int msgflg); msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg); msgsz =sizeof(msgbuf) msgsz =sizeof(msgbuf)-sizeof(long); 好像这两个都可以,但不知道应该哪个是对的...
msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msg-typ, int msgflg);
msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg);
msgsz =sizeof(msgbuf)
msgsz =sizeof(msgbuf)-sizeof(long);
好像这两个都可以,但不知道应该哪个是对的,另一个会有什么错误。
msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg);
msgsz =sizeof(msgbuf)
msgsz =sizeof(msgbuf)-sizeof(long);
好像这两个都可以,但不知道应该哪个是对的,另一个会有什么错误。
|
msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msg-typ, int msgflg);
msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg);
msgsz =sizeof(msgbuf)
msgsz =sizeof(msgbuf)-sizeof(long);
====================
应该是msgsz = sizeof(msgbuf);
建议稍大的缓冲,而不是小一些的,那样发送数据可能会有遗漏没有发完。
msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg);
msgsz =sizeof(msgbuf)
msgsz =sizeof(msgbuf)-sizeof(long);
====================
应该是msgsz = sizeof(msgbuf);
建议稍大的缓冲,而不是小一些的,那样发送数据可能会有遗漏没有发完。