当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > signal函数

signal函数 时间:2017-11-14      来源:未知

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

功能:捕捉一个指定的信号,并作相应的处理

参数:signum :要捕捉的信号

  handler:SIG_IGN   //忽略

       SIG_DFL   //执行默认操作

    fun       //执行相应的函数代码

返回:失败返回SIG_ERR

注意:1、SIGKILL和SIGSTOP不能被捕捉

2、signal是非阻塞函数,不会一直等待指定信号的产生

  3、信号的查看使用命令 kill -1

 

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

 

void fun(int sig)

{

if(sig == SIGINT)

{

puts("catch SIGINT");

}

}

 

int main(int argc, const char *argv[])

{

if(signal(SIGINT, fun) == SIG_ERR)  //SIGINT信号的物理按键为ctrl+c  

    //当捕捉到ctrl+c后执行fun函数  

perror("signal error");

exit(1);

}

 

if(signal(SIGTSTP, SIG_IGN) == SIG_ERR)

//SIGTSTP信号的物理按键为ctrl+z 

perror("signal error"); //当捕捉到ctrl+z后会忽略此信号 

exit(1);

}

 

if(signal(SIGQUIT, SIG_DFL) == SIG_ERR) 

   //当捕捉到ctrl+\后会执行默认操作结束程序

perror("signal error");   //SIGQUIT信号的物理按键为ctrl+\ 

exit(1);

}

 

puts("signal");    //signal是非阻塞函数,所以puts会立即打印输出

while(1);  

return 0;

}

上一篇:I2C总线协议简介

下一篇:mjpg-streamer网络视频服务器移植

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部