UNIX环境高级编程——创建与打开IPC通道
创建或打开一个IPC对象的三个getXXX函数的第一个参数key是类型为key_t的IPC键,返回值identifier是一个整数标识符。该标识符不同于ftok函数的id参数。对于key值,应用程序有两种选择。
(1)调用ftok,给它传递pathname和id。
(2)指定key为IPC_PRIVATE,这将保证创建一个新的,唯一的IPC对象。
key_t ftok(const char *pathname, int proj_id);
所有三个getXXX函数都有一个名为oflag的参数,它指定IPC对象的读写权限位(ipc_perm结构的mode成员),并选择是创建一个新的IPC对象还是访问一个已存在的IPC对象。这种选择的规则如下。
(1)指定key为IPC_PRIVATE能保证创建一个唯一的IPC对象。没有一对id和pathname的组合会导致ftok产生IPC_PRIVATE这个键值。
(2)设置oflag参数的IPC_CREAT位但不设置它的IPC_EXCL位时,如果所指定键的IPC对象不存在,那就创建一个新的对象,否则返回该对象。
(3)同时设置oflag的 IPC_CREAT和IPC_EXCL位时,如果所指定键的IPC对象不存在,那就创建一个新的对象,否则返回一个EEXIST错误,因为该对象已存在。
设置IPC_EXCL位但不设置IPC_CREAT位时没有意义的。
转载于:https://www.cnblogs.com/wangfengju/p/6172743.html
UNIX环境高级编程——创建与打开IPC通道相关推荐
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- UNIX环境高级编程笔记
1.setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, len); SO_REUSEADDR套接口选项允许为以下四个不同的目的提供服务: ...
- 《Unix环境高级编程》学习笔记:从点到面
以前在课堂上学习过<Unix初级教程(第四版)>,对于Unix有了一点了解.由于以后使用的需要,要对它进行比较深入的学习,为此需要阅读不少的书籍,这本<Unix环境高级编程>便 ...
- Unix环境高级编程 笔记
Unix环境高级编程(第二版)学习笔记 这是一次较长时间的整理,然而跳跃了一些章节和很多知识点,仍然是很不完善很不全面的. 前言 操作系统某些问题 严格意义上,可将操作系统定义为一种软件,它控制计算机 ...
- 《UNIX环境高级编程(第3版)》
<UNIX环境高级编程(第3版)> 基本信息 原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison ...
- UNIX环境高级编程-第三版
Unix环境高级编程-第三版 之前学习了<Linux系统编程>对于常见的概念和函数都有了基础的认知,这里准备通过这本书,深入学习系统API相关内容.笔记内容会有所倾向,不会严格反应书本内容 ...
- 5w字总结 Unix系统编程学习笔记(面试向)(Unix环境高级编程/Unix环境程序设计)
文章目录 一.计算 C语言的数据表示与处理 计算 C语言的基本运算操作 内存表和符号表 类型转换 函数类型的分析 指令 复合指令 句法 函数 函数激活(Activation Record) 函数激活定 ...
- 文件和目录(二)--unix环境高级编程读书笔记
在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中.对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中blo ...
- 《UNIX 环境高级编程》学习笔记—— 标准I/O库
UNIX环境高级编程--标准I/O库 流和 FILE 对象 标准输入.标准输出和标准错误 缓冲 打开流 读和写流 每次一行 I/O 二进制 I/O 定位流 格式化 I/O 临时文件 内存流 流和 FI ...
最新文章
- 我非要捅穿这 Neutron(一)网络实现模型篇
- HDU 3397 Sequence operation 线段树 成段更新 区间合并
- SVN合并(merge)的使用
- 2020太湖杯 | Wp及复现
- 强化学习——Qlearning
- 载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用
- 还没毕业就被阿里30万年薪抢定,他凭什么?
- Kali Linux 从入门到精通(三)-入侵系统定制
- IDEA常用提升开发效率的插件及快捷键(持续更新)
- 前端工程化知识要点回顾思考
- Matlab:excel文件 转 txt文件 (只需2行代码)
- python 英文 词频分析软件_有哪些软件可以进行中文词频分析?
- 数据库防火墙的性能和高可用性分析
- ES 索引创建及查询
- python-编码实现指数平滑法移动平均法
- 做独立站如何精准引流
- Android支付接入(七):Googlenbsp;In-app-Billing
- what's the 套期保值
- RISC-V Tools编译安装三部曲之一
- CDN有用吗?我的网站到底需不需要CDN加速?
热门文章
- matlab 状态空间的波特图,MATLAB:对于状态空间方程的系统辨识
- html用ajax做三级联动,怎样使用JS+AJAX做出三级联动
- html——inline、block与block-inline区别
- the server is not ready for publishing.Please check if the Publishing Tools on the server
- access查询设计sol视图_Access删除索引
- python函数参数的引用传递_Python初学者笔记(八):函数参数的值传递和引用传递...
- itext根据数据生成PDF
- VUE3.0引入本地js文件
- Impala与Hive的关系
- 详解: Spark 相对于MapReduce的优势(为什么MapReduce性能不理想)