• System V IPC


    System V IPC指的是AT&T在System V.2发行版中引入的三种进程间通信工具:(1)信号量,用来管理对共享资源的访问 (2)共享内存,用来高效地实现进程间的数据共享 (3)消息队列,用来实现进程间数据的传递。我们把这三种工具统称为System V IPC的对象,每个对象都具有一个唯一的IPC标识符(identifier)。要保证不同的进程能够获取同一个IPC对象,必须提供一个IPC关键字(IPC key),内核负责把IPC关键字转换成IPC标识符。 System V IPC具有相似的语法,一般操作如下: (1)选择IPC关键字,可以使用如下三种方式: a)IPC_PRIVATE。由内核负责选择一个关键字然后生成一个IPC对象并把IPC标识符直接传递给另一个进程。 b)直接选择一个关键字。 c)使用ftok()函数生成一个关键字。 (2)使用semget()/shmget()/msgget()函数根据IPC关键字key和一个标志flag创建或访问IPC对象。如果key是IPC_PRIVATE;或者key尚未与已经存在的IPC对象相关联且flag中包含IPC_CREAT标志,那么就会创建一个全新的IPC对象。 (3)使用semctl()/shmctl()/msgctl()函数修改IPC对象的属性。 (4)使用semctl()/shmctl()/msgctl()函数和IPC_RMID标志销毁IPC实例。 System V IPC为每个IPC对象设置了一个ipc_perm结构体并在创建IPC对象的时候进行初始化。这个结构体中定义了IPC对象的访问权限和所有者: struct ipc_perm{ uid_t uid; //所有者的用户id gid_t gid; //所有者的组id uid_t cuid; //创建者的用户id gid_t cgid; //创建者的组id mode_t mode; //访问模式 … }; shell中管理IPC对象的命令是ipcs、ipcmk和ipcrm。 http://www.cnblogs.com/wangkangluo1/archive/2012/05/14/2498786.html
  • 相关阅读:
    Linux下的C编程实战之文件系统编程
    IPMSG在ubuntu linux上的安装
    NTP服务器
    [Multimedia][MPEG2]MPEG2系统原理
    BitOperation.cs
    android interview 1
    Android USB Host
    android interview 3
    someone's android note
    Android Afianl框架(1)——FinalActivity注解
  • 原文地址:https://www.cnblogs.com/funnylinux/p/3552458.html
Copyright © 2020-2023  润新知