zoukankan      html  css  js  c++  java
  • System V IPC

    System V IPC
    包括三种类型:
    System V消息队列
    System V信号灯
    System V共享内存

    (一) key_t键
    System V使用key_t值作为它们的名字

    ftok函数把一个已存在的路径名和一个整数标识符转换成一个key_t值
    #include <sys/ipc.h>
    key_t ftok(const char* pathname, int id);
    成功时返回IPC键,失败时返回-1

    ftok的典型实现是调用stat函数,然后组合以下值:
    1) pathname所在的文件系统的信息(stat结构的st_dev成员)
    2) 该文件在本文件系统内的索引节点号(stat结构的st_ino成员)
    3) id的低8位(不能为0)

    (二)ipc_perm结构
    内核给每个IPC对象维护一个信息结构

    1 struct ipc_perm{
    2     uid_t     uid;    // owner's user id
    3     gid_t    gid;    // owner's group id
    4     uid_t    cuid;    // creator's user id
    5     gid_t    cgid;    // creator's group id
    6     mode_t    mode;    // read-write permissions
    7     ulong_t    seq;    // slot usage sequence number
    8 }

    (三)创建与打开IPC通道

    1)从IPC键生成IPC标识符:

    2)创建或打开一个IPC对象的逻辑:

  • 相关阅读:
    WordCount结对项目
    第一周作业:一些感想
    第一次作业
    Spring Cloud 微服务实战笔记
    解决jest处理es模块
    领域驱动设计(DDD:Domain-Driven Design)
    测试
    whistle
    日记(2018-11-07)
    ubuntu中使用机密数据Secrets
  • 原文地址:https://www.cnblogs.com/paullam/p/3741245.html
Copyright © 2011-2022 走看看