zoukankan      html  css  js  c++  java
  • 信号通讯

    一。核心理论

      1.信号处理流程

        内核->选择信号->发送信号->进程B->处理信号

      2.信号类型

        Linux系统支持的所有信号均定义在/usr/include/asm/signal.h,其中常见的信号时

        SIGKLL: 杀死进程

        SIGSTOP:暂停进程

        SIGCHLD:子进程停止或结束时用来通知父进程

    二。函数学习

      1.发送信号   

        函数名:     kill

        函数原型:    intkill(pid_t pid,int sig)

        函数功能:    向进程发送信号

        所属头文件: <sys/types.h><signal.h>  

        返回值:    成功时:返回0

                失败时:返回-1

        参数说明:   pid : pid > 0 ,pid参数指向接受信号的进程

                sig : 指明要发送的信号

      2.处理信号    

        函数名:    signal

        函数原型:   typedef void(*sighandler_t)(int)

               sighandler_t signal(int signum,sighandler_t handler)

        函数功能:  设置信号的处理方式

        所属头文件:  <signal.h> 

        返回值:     成功时 :返回处理函数的指针

               失败时 :返回SIG_ERR

        参数说明:   signum : 要处理的信号

                handler: 对应信号的处理方式

                SIG_IGN:忽视这个信号(不处理)

                SIG_DFL:交给内核来处理

               用户自定义方式:交给用户自定义的方式来处理

      3.用户自定义方式

        1.发送信号 kill -n SIGINT pid 

               pid 是指向接受信号的进程号。(ps aux 查看一下这个命令)

        2.kill 发送函数

            ./aprocee pid 

               pid 是指向接受信号的进程号。(ps aux 查看一下这个命令)

  • 相关阅读:
    Python爬虫 Urllib库的高级用法
    Python爬虫入门 Urllib库的基本使用
    Oracle wm_concat()函数
    linux cut命令详解
    linux sort命令详解(转)
    linux awk 命令详解
    linux sed命令详解
    Oracle 数据导入导出操作 (转)
    sqlldr用法
    Python os与sys模块解析
  • 原文地址:https://www.cnblogs.com/lvxiaoning/p/4947584.html
Copyright © 2011-2022 走看看