文档章节

2. Posix IPC

alon龙武
 alon龙武
发布于 2014/11/17 21:56
字数 521
阅读 120
收藏 0
点赞 0
评论 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对象的真正逻辑流程

© 著作权归作者所有

共有 人打赏支持
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 ⋅ 0

深刻理解Linux进程间通信(IPC)

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

墙头草 ⋅ 2010/11/19 ⋅ 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 ⋅ 0

【IPC通信】Posix消息队列的创建

消息队列可以认为是一个消息链表。进程(线程)可以往里写消息,也可以从里面取出消息。 前面讲到的管道和FIFO在写入消息时必须有进程读,否则是一直阻塞的。而消息队列则不同,一个进程可以...

恋恋美食 ⋅ 2011/11/14 ⋅ 2

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

linux共享内存的设计

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

晨曦之光 ⋅ 2012/04/10 ⋅ 0

linux ipc总结(全)

Linux IPC总结(全) 分类: Linux/Unix ABC2011-08-02 11:25 634人阅读 评论(5) 收藏 举报 IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。Linux...

viwii ⋅ 2012/03/30 ⋅ 0

linux实现共享内存同步的四种方法

本文主要对实现共享内存同步的四种方法进行了介绍。 共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝。它是IPC对象的一种。 为了在多个进程间交换信...

sunxiaopengsun ⋅ 04/09 ⋅ 0

POSIX消息队列

@font-face { font-family: "Times New Roman"; }@font-face { font-family: "宋体"; }@font-face { font-family: "Tahoma"; }@font-face { font-family: "Symbol"; }@font-face { font-fam......

树上的鱼 ⋅ 2014/03/13 ⋅ 0

进程间通信IPC-内存共享

函数: (1)int shmget(key_t key, int size, int shmflg),开辟或使用一块共享内存。 (2)void shmat(int shmid, const void shmaddr, int shmflg), 将参数shmid所指向的共享内存与当前进...

borey ⋅ 2014/10/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

IDEA创建SpringMVC+Mybatis+Maven项目

视频如下(加载有点慢请见谅,服务器不太好): 视频

影狼 ⋅ 2分钟前 ⋅ 0

前阿里P8架构师:精准定制Java架构师学习计划!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,除了掌握J...

java高级架构牛人 ⋅ 5分钟前 ⋅ 0

zookeper学习

https://blog.csdn.net/u012152619/article/category/6470028

~少司命~ ⋅ 6分钟前 ⋅ 0

Spring MVC ,JSON,JQuery,不懂JQuery,跳过了

/spring-mvc-study/src/main/webapp/course_json.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD ......

颖伙虫 ⋅ 6分钟前 ⋅ 0

2018上海云栖大会workshop-日志数据采集与分析对接

摘要: 日志数据采集与分析对接 课程描述 通过日志服务采集用户、数据库、业务等访问数据。演示对于业务日志分析与处理,程序日志查询与监控,打通日志与数据仓库对接案例。 日志种类 网站访...

阿里云云栖社区 ⋅ 7分钟前 ⋅ 0

mahout demo

package com.datamine.CollaborativeFiltering.mysql; import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood; import org.apache.mahout.cf.taste.impl.recommend......

xiaomin0322 ⋅ 8分钟前 ⋅ 0

red hat openstack 12配置要求

安装 openstack 之前,一般要规划整个系统中,到底要多少台机器来参与openstack, 根据rhosp12的官方文档: 最低要求是3台物理机,1台作为director,一台作为 controller ,一台作为computer....

tututu_jiang ⋅ 10分钟前 ⋅ 0

Rocket-Chip在GitHub上的各个源码

在github上通过搜索Rocket-chip可以得到36个结果:其中 https://github.com/freechipsproject/rocket-chip https://github.com/ucb-bar/riscv-boom https://github.com/ucb-bar/fpga-zynq (......

whoisliang ⋅ 15分钟前 ⋅ 0

【HAVENT原创】CentOS 6.5 下 Nginx 的安装与配置

nginx是轻量级的Web服务器、反向代理服务器及邮件服务器,具有占用内存少,并发能力强的优点,已被广泛应用。本文介绍目前最新版本 1.12.2 的安装。 各版本nginx下载地址:http://nginx.org/...

HAVENT ⋅ 21分钟前 ⋅ 0

查看linux系统重启之前的log -- last_kmsg

当 Linux Kernel 出现 BUG 的时候,后走入 panic flow,这个时候由于 Kernel 出现了严重的问题,adbd 也无法响应 adb 连接请求,这个时候想透过读取 Kernel Log Buffer 来看 Kernel Log 是不...

zyzzu ⋅ 22分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部