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对象的逻辑:

  • 相关阅读:
    hdoj:2075
    hdoj:2072
    hdoj:2071
    hdoj:2070
    hdoj:2069
    test001
    hdoj:2067
    hdoj:2061
    hdoj:2058
    hdoj:2057
  • 原文地址:https://www.cnblogs.com/paullam/p/3741245.html
Copyright © 2011-2022 走看看