有线管道与信号

一、管道

1.管道:  半双工通信方式

        单工             如:广播 --- 单一方向的数据通道

        半双工         如:对讲机 --- 同一时刻 只能有一个方向

        全双工         如:手机电话 --- 同一时刻两个方向都可以通信

        无名管道 只能用于 亲缘关系进程间

2.有名管道:一种特殊的文件

        1.存在于内存中

        2.在系统中有特定名称

        3.文件大小为0byte

3.fifo:mkfifo   文件名 : 创建有名管道

        int mkfifo(const  char * pathname,mode_t   mode)

        参数:pathname        创建的有名管道路径+名字

                mode      文件权限,如0666

        成功返回0                 失败返回-1(管道文件不支持lseek   fseek等定位操作)

二、信号:本身不能传递大量数据,是一种异步的通信方式

1.同步与异步:   说明对象为两个,步调一致为同步,不同为异步

        信号被称为软中断(软件层面上,实现一个中断过程)

2.signal:typedef    void(*sighandler_t)(int);

                sighandler_t   signal(int   signum,sighandler_t    handler)信号处理函数的注册函数

                signum:要处理的信号编号

                不能被阻塞、处理和忽略的信号:SIGKILL       SIGSTOP

                handler     要对这个信号做怎样的处理   handler是一个函数指针,指向信号处理函数

                             SIG_IGN ---忽略

                             SIG_DFL ---默认操作

                成功         表示上一次设置的信号处理函数的入口地址

                失败         SIG_ERR //表示失败

3.kill函数:int   kill(pid_t    pid,   int  sig)通过该函数可以给pid进程发送信号为sig的系统信号

                pid         要接受信号的进程pid

                sig         当前程序要发送的信号编号

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值