文档章节

2. Posix IPC

alon龙武
 alon龙武
发布于 2014/11/17 21:56
字数 521
阅读 125
收藏 0

Posix IPC包含三种类型的IPCPosix消息队列、Posix信号量和Posix共享内存区

 

Posix IPC名字

  • 必须符合已有的路径名规则(必须最多PATH_MAX字节构成,包含结尾的空字节)

  • 如果以斜杠符开头,函数的不同调用将访问同一个队列。如果不以斜杠符开头,效果取决于实现

  • 名字中额外斜杠符的解释由实现定义

为了移植,Posix IPC名字必须以一个斜杠符开头,并且不能含有任何其他斜杠符。为了避免移植性问题,应该把Posix IPC名字的#define行放在一个便于修改的头文件。解决上述移植性问题的另一个办法是定义一个px_ipc_name函数,为定位Posix IPC名字添加正确的前缀目录

char *px_ipc_name(const char *name);  # name参数不能有任何斜杠符,Solaris返回/nameUnix返回/tmp/name

 

创建与打开IPC对象

mq_opensem_openshm_open三个创建或打开一个IPC对象的函数,oflag参数指定怎样打开请求的对象创建一个新的消息队列、信号量或共享内存区对象时,至少需要mode参数,指定权限位。三个函数打开一个存在的消息队列、信号量或共享内存区对象时,需要基于如下信息执行权限测试:创建时赋予IPC对象的权限位;请求访问类型O_RDONLYO_WRONLYO_RDWR;调用进程的有效ID、有效组ID及各个辅助组ID

     打开或创建Posix IPC对象所用的各种oflag常值

创建新的IPC对象所用的mode常值

 

O_EXCL:如果该标志和O_CREAT一起指定,那么IPC函数只在所指定名字的消息队列、信号量或共享内存区对象不存在时才创建新的对象。如果对象已经存在,那么返回一个EEXIST错误

                打开一个IPC对象的真正逻辑流程

© 著作权归作者所有

共有 人打赏支持
上一篇: 3. System V IPC
下一篇: 1. 简介
alon龙武
粉丝 2
博文 14
码字总数 20481
作品 0
深圳
程序员
私信 提问
Linux IPC总结

我看网络上System V IPC 与POSIX IPC总是混在一起搞不清,今天总结一下. System V IPC API 1,消息队列 int ftok(const char *pathname, int prj_id); int msgget(key_t key,int msgflag); int......

jlmpp
2010/11/16
770
0
第15章 进程间通行 15.6 XSI IPC 15.7 消息队列

15.6 XSI IPC (1)3种称作XSI IPC的IPC是: 1)消息队列 2)信号量 3)共享存储器 (2)标识符和键 1)标识符:是一个非负整数,用于引用IPC结构。是IPC对象的内部名。 2)键:IPC对象的外部...

fxdhdu
2015/10/23
79
0
深刻理解Linux进程间通信(IPC)

linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实 验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信...

墙头草
2010/11/19
0
0
No space left on device: Couldn't create accept lock

原因: (1) 确认是否是硬盘空间不足;结果发现不是空间的问题; (2) 网上查看了下,发现是ipc不足。可以使用ipcs -s(|grep apache的group) 处理: (1) 可以使用$ ipcrm -s 清理指定 semaph...

极速前行
2016/05/17
0
0
linux共享内存的设计

posix的共享内存是通过用户空间挂在的tmpfs文件系统实现的,而system V的共享内存是由内核本身的tmpfs实现的,这里可以看出,二者其实是用同一种机制实现的,不同的是用户接口不同,posix旨在...

晨曦之光
2012/04/10
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

centos安装confluence全攻略

https://blog.csdn.net/qwer026/article/details/51439076

happyeveryday32
15分钟前
2
0
30 行 Javascript 代码搞定智能家居系统

本文首发于『阿里云 IoT 开发者社区』,更多精彩物联网内容欢迎前往浏览。 智能家居可谓是今年物联网的热门领域,通过智能单品和智能音箱,人们已然把『智能』两个字变成了生活的理所应当。搭...

阿里云官方博客
18分钟前
2
0
sed插入和附加文本基础使用

对于编辑器来说,在数据中增加行算是很基本的操作吧,sed有以下两个操作: 插入(insert)命令(i)会在指定行前增加一个新行 附加(append)命令(a)会在指定行后增加一个新行 还是用下面的文本来测...

woshixin
26分钟前
1
0
HIVE数据倾斜总结

在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,...

瑞查德-Jack
37分钟前
0
0
Pure-ftpd搭建FTP

12月11日任务 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 使用pure-ftpd搭建FTP服务 轻量的ftp软件 安装pure-ftpd并修改配置文件 # pure-ftpd为epel扩展库里的软件[root...

robertt15
46分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部