zoukankan      html  css  js  c++  java
  • 【linux高级程序设计】(第十一章)System V进程间通信 1

    System V, 曾经也被称为 AT&T System V,是Unix操作系统众多版本中的一支。

    传统上,System V 被看作是两种UNIX"风味"之一(另一个是 BSD)。然而,随着一些并不基于这两者代码的UNIX实现的出现,例如 Linux 和 QNX, 这一归纳不再准确.

    System V IPC基础

    System V 的IPC机制主要有消息队列信号量共享内存3种机制。

    shell中的 ipcs 命令可以查看当前系统中正在使用的IPC工具。

    shell中的 ipcrm 命令:手工删除某个IPC机制。

    ID值:每个IPC机制都分配了唯一的ID值,使用ID值对IPC机制操作。

    key值:32位整数。两个进程不能随意访问对方空间,即当一个进程创建ID值后,另一个进程无法获取。为此,IPC约定使用key值做为参数创建,相同的key值将得到同一个IPC对象的ID。

      为避免所有程序都使用相同的key值,采用ftok()函数创建key值

      key_t ftok (__const char *__pathname, int __proj_id) : 第一个参数为路径名, 第二个参数为int型变量

        key值的第31-24位,为ftok第2个参数的低8位

        key值的第23-16位,为文件的st_dev属性的低8位

        key值的第15-0位,为文件的st_ino属性的低16位

               31 ——> 0 第几位是按这个顺序定义的

    拥有者及权限:IPC工具所具有的IPC访问权限在/usr/include/bits/ipc.h中定义为struct ipc_perm

  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/dplearning/p/4685387.html
Copyright © 2011-2022 走看看