3.无名管道 只能用于 亲缘关系 进程间
A.c B.c
| |
A B
有名管道
fifo:先入先出
创建有名管道:makepipe
1.是一种特殊文件
a.存在于 内存中
b.在系统中,有一个对应的名称
c.看文件的大小 0bytes
pathname :创建出的管道文件的文件名
Mode:权限
总结:
1.有名管道 特殊文件,但是在系统中有一个名字
2.有名管道 可以用于 任意进程间通信
3.有名管道 操作 符合 前面管道操作特点
4.管道中数据 遵循fifo的读写规则
5.管道文件 都不支持定位操作 lseek fseek
信号:
本身并不能传递大量数据
信号是一种异步的通信方式
同步:
异步:
//1、说明的对象一定是两个
//2、如果,步调一致 ----同步
如果,步调不一致 -----异步
信号(软中断)
信号 被称为 软中断 (软件层面 对中断过程的一种模拟)
编程:
signal():
sighandler_t signal(int signum,sighandler_t handler)
功能:
信号处理函数的 注册函数
参数:
signum:要处理的信号的 编号
不能被阻塞,处理和忽略 SIGKILL SIGSTOP
handler:要对这个信号做怎样的处理
handler是一个函数指针
指向 信号处理函数
//SIG_IGN (ignore) 忽略这个信号
//SIG_DFL(default) 默认操作
返回值:(返回的还是函数指针类型)
成功 表示上一次 设置的 信号处理函数的 入口地址
失败 SIG_ERR
SIGKILL 和 SIGSTOP不能被阻塞,不能被忽略,不能被处理(!!!)
所有的信号:
对于SIGCHLD信号,无论子进程是正常结束还是异常结束,都会发送这个信号到父进程
kill函数:
mplayer中的命令必须以‘\n’结尾才起效