《UNIX 网络编程 卷2:进程间通信》第五章 Posix 消息队列 的示例代码实现了一种基于文件内存映射创建共享内存实现的消息队列,为了避免不同线程的访问冲突而引入了 Posix 互斥锁和 Posix 条件变量。本文主要记录一下实现过程中的几个关键点,以备不时之需。
分类: Reading Notes
Posix 消息队列总结
对《UNIX网络编程 卷2:进程间通信》第五章 Posix 消息队列做了一个简单的总结,介绍了消息队列函数,消息队列做进程间通信的几种方法的流程和它们的利弊。
软件的正交性原则
在《程序员修炼之道——从小工到专家》中提到了软件系统设计中的正交性原则,“正交性”对我而言是一个新鲜词汇,原来 … 继续阅读软件的正交性原则
保持 docker 镜像小巧
Dockfile 里的每一个命令的执行都会在基础镜像上加一个新的镜像层,即使创建了一个文件,后面的一个命令又删 … 继续阅读保持 docker 镜像小巧
如何配置 Docker 容器内进程
配置 Docker 容器内的进程,主要有两种方式: 传递环境变量 在宿主机启动某容器时,设置环境变量,将其传递 … 继续阅读如何配置 Docker 容器内进程
通过管道做进程间通信
从通信方式上讲,管道分为单工通信、半双工通信和双工通信,一些操作系统支持管道的双工通信,实质是底层利用两条半双工管道来实现的。另外,普通的管道只能在父子进程间共享做进程间通信,为了实现两个不相干的进程间的通信,可使用命名管道。
Demo Code to Fork the Child Process
Child process can be created by POSIX function fork(), … 继续阅读Demo Code to Fork the Child Process
文件类型在Unix上的分类与判断
Unix/Linux 上的文件类型分为以下几类: 序号 分类名称 英文名称 文件类型判断宏 说明 1 普通文件 … 继续阅读文件类型在Unix上的分类与判断
空洞文件的创建和说明
函数 lseek() 仅将当前的文件偏移量记录在内核中,并不引起任何 I/O 操作;该偏移量用于下一个读或写操 … 继续阅读空洞文件的创建和说明
两个独立进程各自打开同一个文件
截图显示了三张表之间的关系,对于理解不同进程间共享文件的方式非常重要。该图取自《UNIX环境高级编程》第三章 … 继续阅读两个独立进程各自打开同一个文件