管道 --- 半双工通信方式
单工 //广播 --- 单一方向的数据通道
半双工 //对讲机 --- 同一时刻 只能有一个方向
全双工 //手机电话 --- 同一时刻两个方向都可以通信
无名管道 只能用于 亲缘关系进程间
有名管道
是一种特殊的文件
1.存在于 内存中
2.在系统中 有一个对应名称
3.看文件大小 0bytes
fifo
mkfifo 管道名
mkfifo
在指定的pathname路径 + 名称下创建一个权限为mode的有名管道文件
参数:
pathname 创建的有名管道路径+名字
mode 文件权限 //0666
返回值:
成功 返回0
失败 返回-1
信号
本身并不能传递大量数据,信号是一种异步的通信方式
同步与异步:
1、说明的对象一定是两个
2、如果步调一致,则为同步
如果步调不一致,则为异步
信号被称为软中断(---软件层面上---实现一个类似中断过程)
signal
信号处理函数的注册(安装)函数
参数:
signum //要处理的信号的编号
注:
不能被阻塞,处理和忽略 SIGKILL SIGSTOP
handler //要对这个信号做怎样的处理 ---handler是一个函数指针,指向信号处理函数
//SIG_IGN ---忽略
//SIG_DFL ---默认操作
返回值:
成功 表示上一次设置的信号处理函数的入口地址
失败 SIG_ERR //表示失败
注:此处SIGNIT应为SIGINT
kill
通过该函数可以给pid进程发送信号为sig的系统信号
参数:
pid 要接受信号的进程pid
sig 当前程序要发送的信号编号
---------------------
嵌入式学习第三十天,今天学习了关于有名管道和信号这两种管道通信方式,有名管道即有名字的特殊的文件,其可以实现不同.c间的通信,而信号只能发出指定的信号,其中有两个较为特殊的信号,即SIGKILL SIGSTOP,这两个不能被阻塞,处理和忽略。后面继续加油!