Linux进程间通信
文章平均质量分 79
权艺
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux进程间通信之信号量
Linux进程间通信之信号量 一.信号量 定义信号变量; sem_t sem1 sem2 初始化信号量 P操作 V操作 功能 信号量(POSOX) 信号量灯(IPC) 定义信号变量 sem_t sem1 semget 初始化信号量 sem_init semctl P操作 sem_wait semop V操作 sem_post semop 前面学的信号量时针对的是单个的信号。而信号灯集是一个整体的概念是针对的多个信号量来操作的。 信号灯: 信号灯集合(可以原创 2020-07-27 23:07:33 · 416 阅读 · 0 评论 -
Linux进程间通信之消息队列
Linux进程间通信之消息队列 一.消息队列 Msqid_ds 维护消息队列的结构体,队列的第一个消息指针msg_first,最后一个消息指针msg_last 消息中有一个成员指针next 每一个消息中包含有哪些内容: Data 数据 Length 数据的长度 Type 数据的类型。 例如: 1----voltage data 2----电流数据 3----有功功率 与其他的不同的是内核空间创建的是一个链式队列 消息的接收端可以根据消息的类型来接收。 |文件I/O | 消息队列| |op原创 2020-07-27 22:30:27 · 653 阅读 · 0 评论 -
Linux进程间通信之IPC通信共享内存
Linux进程间通信之IPC通信共享内存 一.IPC通信 1.IPC通信(Inter-Process Communication) 三种: 共享内存、消息队列、信号灯 这个IPC对象,肯定是存在于内核中。而且用户空间的文件系统中有没有IPC的文件类型?没有。 1.1 有名管道为什么能实现无亲缘关系的进程之间的通信? 是因为用户空间有管道这种文件类型。 1.2 IPC是不是只能用于亲缘关系进程之间的通信呢?肯定不是 1.3 它是怎样实现无亲缘关系之间的通信呢?也即你是保证用户空间的二个进程对内核中的同一个IP原创 2020-07-27 21:18:00 · 354 阅读 · 0 评论 -
Linux进程间通信之有名无名管道
Linux进程间通信之有名无名管道 一:无名管道 通信原理: 管道文件是一个特殊的文件,是由队列来实现的。 在文件IO中创建一个文件或打开一个文件是由open函数来实现的,它不能创建管道文件。只能用pipe函数来创建管道。(open函数只能创建普通文件) 函数形式:int pipe(int fd[2]) 功能:创建管道,为系统调用:unistd.h 参数:就是得到的文件描述符。可见有两个文件描述符:fd[0]和fd[1],管道有一个读端fd[0]用来读和一个写端fd[1]用来写,这个规定不能变。(有了文件原创 2020-07-25 10:31:20 · 327 阅读 · 0 评论 -
Linux进程间通信之信号
Linux进程间通信之信号 一:信号 信号通信,其实就是内核向用户空间进程发送信号,只有内核才能发信号,用户空间进程不能发送信号。信号其实已经在内核存在了。 内核可以发送多少种信号呢? kill -l 64种 命令:kill -9 pid 注:1.告诉内核发送什么信号; 2.告诉内核发给谁。 信号通信的框架 信号的发送(发送信号进程):kill raise alarm 信号的接收(接收信号进程) : pause() sleep while(1)//这3中方式可以 信号的处理(接收信号进程原创 2020-07-25 12:45:25 · 199 阅读 · 0 评论 -
Linux进程间通信之通信概述
Linux进程间通信(1) 一:进程通信概述 1.什么是进程间通信? 什么是线程间通信? 进程通信:在用户空间实现进程通信是不可能的,通过Linux内核通信 #include "unistd.h" #include "stdio.h" #include "sys/types.h" #include "stdlib.h" int main() { pid_t pid; int process_inter=0; pid = fork(); if(pid ==0)//child proces原创 2020-07-25 10:29:12 · 204 阅读 · 0 评论
分享