专栏首页陶士涵的菜地[linux] C语言Linux系统编程-捕获进程信号

[linux] C语言Linux系统编程-捕获进程信号

typedef void( *sighandler_t)(int);

1.用typedef给类型起一个别名。

2.为函数指针类型定义别名,

3.函数指针(指向函数的指针)

sighandler_t signal(int signum, sighandler_t handler);

1.函数原型

2.使用自定义的类型别名,作为函数参数和函数返回值

3.第一个参数是信号的标号,第二个参数是函数指针

implicit-function-declaration(不明函数声明)

sleep()函数在#include<unistd.h>这个头文件中

#include <stdio.h>
#include <signal.h>
#include<unistd.h>
//申明一个自定义函数
void myHandler(int signum){
        printf("捕获到信号 %d \n",signum);
}
int main(){
        //定义一个函数指针,指向上面的函数
        void(* handler)=myHandler;
        //调用函数,传递参数int信号标号,传递函数指针
        signal(SIGINT,handler);//捕获ctrl+c
        signal(SIGTERM,handler);//捕获程序退出
        while(1){
                printf("进程运行中...\n");
                sleep(1);
        }   
}

运行结果:

信号2是我ctrl+c , 信号15是我kill 进程id , 但是当我kill -9 进程id时 , 使用signal(SIGKILL,handler) 信号不能被捕获

进程运行中... 进程运行中... 进程运行中... ^C捕获到信号 2 进程运行中... 进程运行中... 进程运行中... 捕获到信号 15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [linux] C语言Linux系统编程-做成守护进程

    2.在新守护进程的父进程中,调用exit(),为了守护进程的爷爷进程确认父进程结束

    陶士涵
  • [Linux] 查看进程的上下文切换pidstat

    各个进程之间是共享 CPU 资源的,在不同的时候进程之间需要切换,让不同的进程可以在 CPU 执行,那么这个一个进程切换到另一个进程运行,称为进程的上下文切换。

    陶士涵
  • [javaSE] 变量的传值与传址

    基本数据类型:byte,short,int,long,double,float,char,boolean

    陶士涵
  • Java面试集合(四)

    JVM是Java虚拟机,是Java跨平台的重要保障,JVM实现Java跨平台的前提,可以针对不同的操作系统,有不同的JVM。

    达达前端
  • Java HotSpot 执行引擎架构

    Java HotSpot™虚拟机实现(Java HotSpot™VM)是Sun Microsystems,Inc.的高性能Java平台虚拟机。Java HotS...

    gemron的空间
  • 企业面试题: JavaScript中如何检测到一个变量是String类型,请写出函数实现

    如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 object...

    舒克
  • Spring MVC适配器模式实践之HandlerAdapter源码分析【享学Spring MVC】

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    YourBatman
  • 「MoreThanJava」Java 发展史及起航新世界

    20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。

    我没有三颗心脏
  • hdu1098

    @坤的
  • 谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?

    Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地...

    葆宁

扫码关注云+社区

领取腾讯云代金券