linux 进程间通信系列3,使用socketpair,pipe 1,使用socketpair,实现进程间通信,是双向的。 2,使用pipe,实现进程间通信 使用pipe关键点:fd[0]只能用于接收,fd[1]只能用于发送,是单向的。 3,使用pipe,用标准输入往里写。 疑问:在代码2里不写wa ...
分类:
编程语言 时间:
2018-10-20 10:14:13
阅读次数:
150
进程间通信的目的 1. 数据交换 2. 状态同步 3. 事件通知 4. 资源共享 5. 进程控制 一般来将进程之间的通信根据内容可以划分为两种,一种是传输控制信息,另一种是传输大量的数据。一般控制信息只有一个或几个字节,用来达到进程控制操作的高速执行(比如利用信号量实现进程同步);大量数据的传输一般 ...
分类:
系统相关 时间:
2018-09-04 16:58:20
阅读次数:
201
一、进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据:多个进程要操作共享数据,一个进程对共享数据 信息传递:一个进程需要向另一个进程发送消息,通知它发生了某种事件。 资源共享:多个进程之间共享同样的数据。为了做到这一点,需要内核提供锁 ...
分类:
系统相关 时间:
2018-07-11 21:22:44
阅读次数:
161
共享内存 :内核空间预留出来的一块内存,用于进程间通信 共享内存是一种最高效的进程间通信方式,因为进程可以直接读写内存,不需要任何数据的复制,为了在进程间交换信息,内核专门留出了一块内存区,这段内存可以由要访问的进程将其映射到自己的私有地址空间,因此,进程就可以直接读写这一内存而不需要进行数据的复制 ...
分类:
系统相关 时间:
2018-07-11 14:38:44
阅读次数:
181
信号灯(信号量)集 在多任务操作系统环境下,多个进程或线程会同时运行,多个任务可能可能为了完成同一个目标会相互协作,这样形成任务之间的同步关系;同样,在不同任务之间为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这就是任务之间的互斥关系 任务之间的同步与互斥关系存在的根源在于临界资源。临界资 ...
分类:
系统相关 时间:
2018-07-11 12:38:20
阅读次数:
157
信号 信号是异步进程间通信方式 进程对信号的响应方式:<1>忽略 SIGKILL 和 SIGSTOP 不能忽略 <2>捕捉 当进程收到信号,此时执行的信号处理函数 <3>默认 SIGSTOP 改信号用于暂停一个进程,且不能被阻塞,忽略,和处理,默认操作为暂停进程 大部分信号对进程的默认操作方式都是杀 ...
分类:
系统相关 时间:
2018-07-10 22:09:41
阅读次数:
206
我们在做linux 进程间通信开发时,经常会用到ftok函数去产文唯一键值,那么这个键值是如何产生的呢。函数原型:key_t ftok( const char * fname, int id );应用:key_t key=ftok(".",'A');fname为已经存在的文件名,本文为“.”表示当前 ...
分类:
系统相关 时间:
2018-06-25 22:58:39
阅读次数:
581
Posix消息队列与System V 消息队列的用法很相似,主要有以下区别:1. 对Posix消息队列的读取总是返回最高优先级的最早消息,对System V 消息队列的读取可以返回指定优先级的消息。2. Posix 消息队列允许产生一个信号或启动一个线程去向一个空队列写入一个消息,System V消 ...
分类:
系统相关 时间:
2018-06-25 22:57:57
阅读次数:
272
Posix共享内存有两种非亲缘进程间的共享内存方法:1). 使用内存映射文件,由open函数打开,再由mmap函数把返回的文件描述符映射到当前进程空间中的一个文件。2). 使用共享内存区对象,由shm_open打开一个 Posix IPC名字。再由mmap把返回的描述符映射到当前进程的地址空间。Po ...
分类:
系统相关 时间:
2018-06-25 22:54:02
阅读次数:
299
Posix信号量不同于System V信号量的信号量集,Posix信号量是单一的信号量,分为有名信号量和无名信号量。Posix有名信号量是使用Posix IPC名字标示的信号量,可用于进程和线程间的同步;Posix无名信号量是指基于内存的信号量,存放在共享内存区中,用于进程与线程间的同步。Posix ...
分类:
系统相关 时间:
2018-06-25 22:51:03
阅读次数:
276