linux 进程通信-信号学习总结(1)

 liux 下进程通信有信号、管道和System V 的ipc的三种通信方式:信号量、消息队列以及共享内存。
信号在linux通信方式中是一种最简单的通信方式,它只传送简单的数据,实际上是一种异步软中断的通信方式。linux的信号有很多,其中最常用的有SIGKILL、SIGALRM、SIGSTOP、SIGCHLD、SIGUSR1、SIGUSR2等。
对信号的处理方式有三种:忽略信号、使用系统默认的处理方式、使用自定义的函数进行处理,其中最后一种需要自定义一个函数,并使用函数signal来指定信号由访函数来处理。signal函数原型为:
typedef void (*sighandler)(int);
sighandler signal(int signum,sighandler handler);
其中参数signum为信号值,而handler为对信号进行处理的函数。现举一个使用信号进行通信的例子。
#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
#include "signal.h"
void sigint(int signum)
{
        printf("Capture SIGINT/n");
}
int main()
{

        signal(SIGINT,sigint);
        sleep(2);
        return 0;
}
将该源程序编译运行后,在2s内按下Ctrl+c,即可输出:Capture SIGINT
此外在使用信号通信时,要用到的函数主要有:kill(),pause(),alram(),setitimer,getitimer等等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值