
Linux进程间通信
文章平均质量分 79
权艺
这个作者很懒,什么都没留下…
展开
-
Linux进程间通信之信号量
Linux进程间通信之信号量一.信号量定义信号变量; sem_t sem1 sem2初始化信号量P操作V操作功能 信号量(POSOX) 信号量灯(IPC)定义信号变量 sem_t sem1 semget初始化信号量 sem_init semctlP操作 sem_wait semopV操作 sem_post semop前面学的信号量时针对的是单个的信号。而信号灯集是一个整体的概念是针对的多个信号量来操作的。信号灯:信号灯集合(可以原创 2020-07-27 23:07:33 · 371 阅读 · 0 评论 -
Linux进程间通信之消息队列
Linux进程间通信之消息队列一.消息队列Msqid_ds 维护消息队列的结构体,队列的第一个消息指针msg_first,最后一个消息指针msg_last消息中有一个成员指针next每一个消息中包含有哪些内容:Data 数据Length 数据的长度Type 数据的类型。例如:1----voltage data2----电流数据3----有功功率与其他的不同的是内核空间创建的是一个链式队列消息的接收端可以根据消息的类型来接收。|文件I/O | 消息队列||op原创 2020-07-27 22:30:27 · 586 阅读 · 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 · 312 阅读 · 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 · 284 阅读 · 0 评论 -
Linux进程间通信之信号
Linux进程间通信之信号一:信号信号通信,其实就是内核向用户空间进程发送信号,只有内核才能发信号,用户空间进程不能发送信号。信号其实已经在内核存在了。内核可以发送多少种信号呢?kill -l64种命令:kill -9 pid注:1.告诉内核发送什么信号;2.告诉内核发给谁。信号通信的框架信号的发送(发送信号进程):kill raise alarm信号的接收(接收信号进程) : pause() sleep while(1)//这3中方式可以信号的处理(接收信号进程原创 2020-07-25 12:45:25 · 144 阅读 · 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 · 183 阅读 · 0 评论