当前位置:  技术问答>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);
好像这两个都可以,但不知道应该哪个是对的,另一个会有什么错误。

|
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);

建议稍大的缓冲,而不是小一些的,那样发送数据可能会有遗漏没有发完。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教:sun中程序执行semid = semget( IPC_PRIVATE, 1, 0600 | IPC_CREAT ),semid < 0,是什么原因?
  • 关于l inux ipc 冲突
  • 求助关于posix ipc 对象创建相关问题
  • 如何使Linux内核支持System V IPC?
  • UNIX系统下的IPC机制
  • shmdt(addr) 和 shmctl(shmid,IPC_RAID,0)有什么区别?
  • Linux IPC 问题
  • LINUX中实现单实例功能使用哪种IPC好啊?
  • ACE与网络IPC的关系是什么?
  • 关于IPC的简单问题
  • 使用ipcrm清理ipc
  • IPC的权限问题
  • 一道ipc的题目
  • ACE与网络IPC的关系是什么? iis7站长之家
  • cygwin下ipc共享内存
  • 宏内核系统IPC使用的传递机制是什么
  • IPC_CREAT | 0660 的意义是什么?
  • FreeBSD 不支持 POSIX IPC?
  • 在线等,关于IPC,高分求高人指点
  • 请问posix IPC中使用mq_open()创建消息队列的问题?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3