先说POSIX的吧:

mq_open,sem_open,shm_open着三个函数用于创建或者打开一个IPC通道。

由此可见,消息队列的读写权限是任意的,然而信号灯就没有,实际上,信号灯都需要读和写权限罢了。共享内存不能只以只写方式打开,否则不能往共享内存中写数据的。

在创建一个新的消息队列或者信号灯或者共享内存的时候,可能需要mode_t权限标志:

S_IRUSER 用户读   S_IWUSER 用户写  S_IRGRP 用户组读 S_IWGRP 用户组写  S_IROTH 其他用户读    S_IWOTH 其他用户写

其中所指定的文件权限位受当前进程文件模式创建掩码,但我们可以通过umask()修正。

这里注意的是O_NONBLOCK标志,该标志使得一个消息队列在队列为空的时候读或消息队列填满是写被阻塞,O_TRUNKC标志,如果以读写模式打开一个已存在的共享内存去对象那么该标志将使得该对象的长度被结成0.

本图是显示创建IPC通道的一般逻辑和思路。

2,SYSTEM V的方法:

创建与打开IPC通道的POSIX和SYSTEM V方法相关推荐

  1. glibc库详解及与POSIX,system V这些库之间关系的说明

    自己想了解下关于system v,在网上看到一篇详细的说明,与大家分享一下,原文地址http://hi.baidu.com/tekuba/item/570887775696542e5c178918 以 ...

  2. UNIX环境高级编程——创建与打开IPC通道

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

  3. 细说linux IPC(十):system V 消息队列

    [版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途] system V消息队列和posix消息队列类 ...

  4. posix and system V IPC

    轉載自 http://www1.huachu.com.cn/read/readbook.asp?bookid=10104131 http://www1.huachu.com.cn/read/readb ...

  5. 测试POSIX、System V消息队列时延和性能

    https://github.com/Rtoax/test/blob/master/ipc/mqueue/1/statistics-perf.c /*** 统计 mqueue 消息队列的吞吐率和性能* ...

  6. Linux IPC实践(7) --Posix消息队列

    1. 创建/获取一个消息队列 #include <fcntl.h> /* For O_* constants */ #include <sys/stat.h> /* For m ...

  7. System V IPC

    1.概述 System V IPC共有三种类型:System V消息队列.System V 信号量.System V 共享内存区. System V IPC操作函数如下: 2.key_t键和ftok函 ...

  8. mmap内存映射、system V共享内存和Posix共享内存

    linux内核支持多种共享内存方式,如mmap内存映射,Posix共享内存,以system V共享内存.当内核空间和用户空间存在大量数据交互时,共享内存映射就成了这种情况下的不二选择.它能够最大限度的 ...

  9. System V IPC POSIX IPC(一):消息队列

    System V IPC & POSIX IPC(一):消息队列 消息队列允许进程之间以消息的形式交换数据,是一种常见的进程之间的通信机制. 1. 消息队列的创建 System V IPC: ...

最新文章

  1. html获取cookie_知了汇智《XSS攻击-盗取cookie实战》课程文档讲解
  2. Python应用——自定义函数:分割PDF文件函数
  3. 【机器视觉】 HDevelop语言基础(六)-错误处理
  4. [leetcode] 746.使用最小花费爬楼梯
  5. [C++STL]常用集合算法
  6. Qt配置VS2017
  7. 助教总结-【北京电子科技学院_2016-2017-2_程序设计与数据结构】
  8. php获取当前页面select的值,关于JS获取select的值
  9. c 语言 宏 可变 参数,利用C可变参数和宏定义来实现自己的日志系统
  10. PERL-MOJO写一个简单的登录验证页面
  11. python百度文库源码_Python源码剖析3
  12. 5304—K3 Cloud 自定义webAPI
  13. 【习题 4-7 UVA - 509】RAID!
  14. 你一定要知道的,8大花店运营指南
  15. shader镜面反射(Reflection)
  16. 内网渗透笔记——三层发现and四层发现
  17. ssrs订阅_SSRS订阅失败警报
  18. dpo指标详解买入绝技_DPO指标详解 DPO指标使用技巧
  19. 开普敦大学快速相关攻击项目的简单使用
  20. 如何使用Snap功能同时运行两个Windows 8应用程序

热门文章

  1. ubuntu/wireshark --Lua: Error during loading: [string /usr/share/wireshark/init.lua]:45问题解决
  2. kafka集群 kubernetes_为什么 Kubernetes 如此受欢迎?
  3. goland环境配置_Goland辅助工具goimports和gomodules
  4. java aqs源码_java中AQS源码分析
  5. 【转】wpf从我炫系列1----布局控件的使用(上)
  6. 【转】Magento2目录结构
  7. console对象的方法log、info、warn、error的区别及几个实用的方法
  8. c#之task与thread区别及其使用
  9. java syncr_JAVA基础—Synchronized线程同步机制
  10. c语言中如何用程序判断double型的浮点数能精确到几位小数,C语言中浮点数double/float相等判断...