zoukankan      html  css  js  c++  java
  • System V消息队列

    本文是对《Unix 网络编程 卷2:进程通信》第六章的笔记。

    引言

    System V 消息队列首部的结构,结构代码如下:

    struct msqid_ds {
      struct       ipc_perm msg_perm;    /* 定义一些用户操作权限的问题*/
      msgqnum_t    msg_qnum;             /* 当前消息队列中的消息数量*/
      msglen_t     msg_qbytes;           /* 消息队列所允许的最大字节数 */
      pid_t        msg_lspid;            /* 最后一个消息的发送者的进程ID*/
      pid_t        msg_lrpid;            /* 最后一个消息取走者的进程ID*/
      time_t       msg_stime;            /* last-msgsnd() time */
      time_t       msg_rtime;            /* last-msgrcv() time */
      time_t      msg_ctime;             /* last-change time */
    };

    与posix消息队列的区别

    其实,与posix消息队列的头部结构拿来比较一下,区别还是一目了然的。由于没有一些锁的支撑,最大的疑惑点就是System V消息队列的互斥性访问有谁来保证,读和写的相互唤醒又有谁来做的呢?

    消息传送机制

    定义自己的消息结构

    struct mymesg{
      long type;
      long len;
      char msg[MAXLEN];      
    }

     重点是:msgsnd和msgrecv这两个函数的参数很有意思。

  • 相关阅读:
    纯js面试题
    js面试题汇总:
    css面试题-圣杯布局
    6.1 React组件 Component的两个问题
    7.1 React异步加载
    vscode插件配置jsx:
    6.2 React renderProps 和 HOC组件优化
    2.5 React高阶组件HOC
    04 Python学习之数据类型-bytes
    03 Python学习之Python基础
  • 原文地址:https://www.cnblogs.com/sylz/p/6028228.html
Copyright © 2011-2022 走看看