Linux C之进程间通讯

一.管道

无名管道

创建无名管道

int pipe(int pipides[2]);

  参数pipides为一个整形数组,下表为2。如果函数执行成功,pipe将存储两个文件描述符于pipedes[0]和pipedes[1]中,它们分别指向管道的两端。如果系统调用失败,将返回-1。
  无名管道是单工的,一个管道只能实现从一个进程向另外一个进程发送消息,pipedes[0]是读端,pipedes[1]是写段,两者的角色不能互换,即pipedes[0]必须是读端, pipedes[1]必须是写端。如果需要实现两进程双工通信,需要两个无名管道。
  无名管道通信原理如下图所示:
   无名管道通信原理

转载链接:
Linux进程间通讯一–无名管道PIPE

有名管道-FIFO

特点

  1. 有名管道创建在硬盘中,打开在内存中,全双工通讯模式
  2. 有名管道在数据未读完时,关闭程序再打开,数据不会被保存!!!
  3. 有名管道遵循先进先出规则
  4. 有名管道没有读写端之分,就像操作文件一样,read/write就行

创建有名管道

#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>

//创建有名管道函数:
int mkfifo(const char* filename, mode_t mode);

二、信号

  1. 特点
  2. 信号发布
  3. 信号捕捉
  4. 信号处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值