
linux进程间通信
weixin_48080013
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
管道通信原理
1.进程间通信(IPC)介绍进程间通信(IPC)是指在不同进程之间传播或交换信息IPC的方式通常有管道(包括无名管道和命名管道),消息队列,信号量,共享存储,Socket,Streams等。其中Socket和Streams支持不同主机上的两个进程IPC2.管道管道通常指无名管道,是UNIX系统IPC最古老的形式特点:<1> 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端<2> 他只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程原创 2020-12-16 21:09:22 · 804 阅读 · 1 评论 -
创建命名管道
FIFO,也称命名管道,它是一种文件类型。1.特点:FIFO可以在无关的进程之间交换数据,与无名管道不同FIFO有路径名与之相关联,它以一种特殊设备文件形式存在于文件系统中2.创建命名管道的函数原型:int mkfifo(const char *pathname,mode_t mode);参数说明:pathname:文件的路径名mode:与open函数中的mode相同。一旦创建了一个FIFO,就可以用一般的文件IO函数操作它返回值:成功返回0,出错返回-1,错误原因存于errno中原创 2020-12-16 22:11:55 · 338 阅读 · 0 评论 -
消息队列的通信原理及创建消息队列编程收发数据
1.消息队列,是消息的链接表,存放在内核中,一个消息队列由一个标识符(即队列ID)来标识。2.特点:消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级消息队列独立于发送与接收进程。进程终止时,消息队列及其内容并不会被删除消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取3.消息队列相关api<1> int msgget(key_t key, int flag);功能:打开或创建消息队列。返回值:成功返回队列ID,失败返回-1原创 2020-12-17 21:26:16 · 427 阅读 · 0 评论 -
Linux中ftok函数介绍
函数原型:*key_t ftok(const char fname, int id);功能:系统建立IPC通讯(如消息队列,共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到返回值:成功返回一个key_t值,失败返回-1参数说明:fname:就是你指定的文件名(已经存在的文件名),一般使用当前目录id:子序号。(虽然为int型,但是只有8个比特被使用,也就是0—255)在一般的UNIX实现中,是将文件的索引节点号去取出(查询文件索引节点号的方法是:ls -i)。前面加原创 2020-12-18 19:22:18 · 728 阅读 · 0 评论 -
Linux进程间通信之共享内存
共享内存,是指两个或多个进程共享一个给定的存储区1.特点:共享内存是最快的一种IPC,因为进程是直接对内存进行存取因为多个进程可以同时操作,所以需要进行同步信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问2.相关的api<1> int shmget(key_t key, size_t size, int flag);功能:创建或获取一个共享内存返回值:成功返回共享内存的ID,失败返回-1参数说明:key:有两种情况:1)0或IPC_PRIVATE:会原创 2020-12-18 20:36:49 · 134 阅读 · 1 评论 -
Linux 信号(signal)以及信号的应用
信号概述1.对于Linux来说,实际信号是软中断,许多重要的程序都需要处理信号。信号为Linux提供了一种处理异步事件的方法。比如:终端用户输入了ctrl+c来中断程序,会通过信号机制停止一个程序。2.信号的名字和编号:每个信号都有一个名字和编号,这些名字都以"SIG"开头,例如:“SIGIO”,"SIGCHLD"等等信号定义在signal.h头文件中,信号名都定义为正整数具体的信号名称可以用指令 kill -l 来查看信号的名字以及序号,信号是从1开始编号的,不存在0号信号。kill对于信号0原创 2020-12-21 21:42:05 · 951 阅读 · 0 评论 -
linux进程间通信之信号量及信号量的应用
信号量概述信号量与已经介绍过的IPC结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据特点:信号量用于进程间同步,若要在进程间传递数据需要结合共享内存信号量基于操作系统的P操作和V操作,程序对信号量的操作都是原子操作每次对信号量的PV操作不仅限于对信号量值加1或减1,而且可以加减任意正整数支持信号量组临界资源:多道程序系统中存在许多进程,它们共享各种资源,如:共享内存,然而有很多资源一次只能供一个进程使用,一次仅允许一个进程使用的资源称为临界资源。许多原创 2020-12-22 22:46:22 · 181 阅读 · 0 评论