随笔分类 - 进程间通信IPC
摘要:概括 打开消息队列 关闭消息队列 进程终止对消息队列的影响 删除消息队列 描述符和消息队列之间的关系 消息队列的特性 获取消息队列特性 修改消息队列特性 交换消息 发送消息 接受消息 消息通知
阅读全文
摘要:IPC机制介绍 接口总结 比较 POSIX IPC API 创建open 创建打开IPC对象 消息队列展示在文件系统 IPC名字限制 删除和关闭IPC对象
阅读全文
摘要:shmget() 参数shmflag shmat() shmflag shmdt 内存分布情况 内存段中使用指针 shmctl 加锁和解锁共享内存 共享内存关联数据结构 共享内存的限制
阅读全文
摘要:基础概念 IPC函数接口 IPC对象删除和可持久性 信号量 System V的信号量集表示的是一个或多个信号量的集合。内核为每个信号量集维护一个semid_ds数据结构,而信号量集中的每个信号量使用一个无名结构体表示。 信号量比较特殊,首先它是个计数器,主要提供对进程间共享资源访问控制机制。相当于内
阅读全文
摘要:客户端-服务端 版本一 Code int commom_msg(int msgFlag) { // 生成IPC关键字 key_t k = ftok(PATHNAME, PROJ_ID); // 获取消息队列ID int msgId = msgget(k, msgFlag); if (msgId 0)
阅读全文
摘要:msgget 创建和打开消息队列函数 创建和标志位的控制逻辑 msgrcv 从消息队列中读取一条新消息的函数msgrcv msgsnd 将消息送入消息队列的函数 msgsnd参数 msgctl 获取和设置消息队列的属性函数
阅读全文
摘要:信号常用函数 kill() raise() signal() 信号阻塞的相关函数 sigemptyset sigaddste sigprocmask
阅读全文
摘要:分类 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进
阅读全文
摘要:函数定义总览 结构体定义 函数代码示例 代码 // 创建和获取 ipc 内核对象 int msgget(key_t key, int flags); // 将消息发送到消息队列 int msgsnd(int msqid, const void *msgp, size_t msgsz, int msg
阅读全文
摘要:概念 管道读写特点 管道的局限性 创建管道函数pipe 读写管道函数read/write 等待子进程中断或结束的函数wait 使用管道的特殊情况 创建无名管道 /* 创建无名管道,创建子进程 */ void pipe_func(void) { int res; int num; pid_t pid;
阅读全文
摘要:1 信号量基本概念 1.1 信号量同步过程 1.2 信号阻塞和唤醒的机制 1.3互斥量和信号量的区别? 2 semget创建或打开信号量集 函数定义 2.1 参数介绍 2.2 参数宏介绍 2.3 创建和初始化时存在的缺陷问题 2.3.1 问题解决思路 3 semctl信号量控制操作 3.1 第四个参
阅读全文
摘要:信号基本概念 可靠信号和不可靠信号 信号的生命周期 信号的处理顺序 信号归纳方式&列表
阅读全文