zoukankan      html  css  js  c++  java
  • UNIX环境高级编程——创建与打开IPC通道

    创建或打开一个IPC对象的三个getXXX函数的第一个参数key是类型为key_t的IPC键,返回值identifier是一个整数标识符。该标识符不同于ftok函数的id参数。对于key值,应用程序有两种选择。

    (1)调用ftok,给它传递pathname和id。

    (2)指定key为IPC_PRIVATE,这将保证创建一个新的,唯一的IPC对象。

    key_t ftok(const char *pathname, int proj_id);


    所有三个getXXX函数都有一个名为oflag的参数,它指定IPC对象的读写权限位(ipc_perm结构的mode成员),并选择是创建一个新的IPC对象还是访问一个已存在的IPC对象。这种选择的规则如下。

    (1)指定key为IPC_PRIVATE能保证创建一个唯一的IPC对象。没有一对id和pathname的组合会导致ftok产生IPC_PRIVATE这个键值。

    (2)设置oflag参数的IPC_CREAT位但不设置它的IPC_EXCL位时,如果所指定键的IPC对象不存在,那就创建一个新的对象,否则返回该对象。

    (3)同时设置oflag的 IPC_CREAT和IPC_EXCL位时,如果所指定键的IPC对象不存在,那就创建一个新的对象,否则返回一个EEXIST错误,因为该对象已存在。

        设置IPC_EXCL位但不设置IPC_CREAT位时没有意义的。


  • 相关阅读:
    Redis-10 Bitmap位图基本操作
    Redis学习-09 hyperloglog基本操作
    Redis学习-08 Geospatial地理位置详解
    Redis学习-07 Zset有序集合
    Redis学习-06 Hash哈希基本操作
    部分知识路径
    Docker 容器中安装vi、ifconfig、ping命令
    Java new一个对象的过程超级详解
    SVN
    创建ssm项目
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6172743.html
Copyright © 2011-2022 走看看