• Unix系统编程()信号处理器简介


    信号处理器简介

    信号处理器程序(也称为信号捕捉器)是当指定信号传递给进程时将会调用的一个函数。这里会学习信号处理器的基本原理,后面将继续学习。

    调用信号处理器程序,可能会随时打断主程序流程;内核代表进程来调用处理器程序,当处理器返回时,主程序会在处理器打断的位置恢复执行。

    image

    虽然信号处理器程序几乎可以为所欲为,但一般而言,设计应力求简单。

    程序20-1

    #include <signal.h>
    
    static void sigHandler(int sig) {
        printf("Ouch!
    ");              /* Unsafe */
    }
    
    int main(int argc, char *argv[]) {
        int j;
    
        if( signal(SIGINT, sigHandler) == SIG_ERR)
            printf("error
    ");
    
        for(j = 0; ; j++) {
            printf("%d
    ", j);
            sleep(3);
        }
    }

    程序清单20-1所示为一个简单的信号处理器函数,由主程序为SIGINT信号而建立.当键入中断字符(通常为Control-C)时,终端驱动程序将产生该信号。处理器只是简单打印一条消息,随机返回。

    主程序会持续循环。每次迭代,程序都将递增计数器的值并将其打印出来,然后休眠几秒钟。


    内核在调用信号处理器程序时,会将引发调用的信号编号作为一个整型参数传递给处理器函数。如果信号处理器程序只捕获一种类型的信号,那么这个参数几乎无用。然而,如果安装相同的处理器来捕获不同类型的信号,那么就可以利用此参数来判定引发对外处理器调用的是何种信号。

  • 相关阅读:
    apk反编译
    Hybrid App
    Hybrid App
    Hybrid App
    Hybrid App 介绍
    android-adb
    .java生成dex文件
    android Activity launch mode 知识点总结
    2018.10.15学习总结
    2018.10.12
  • 原文地址:https://www.cnblogs.com/tuhooo/p/8677169.html
Copyright © 2020-2023  润新知