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 查看一下这个命令)

  • 相关阅读:
    git拉取线上新分支拉不下来
    contenteditable属性,让div也可编辑
    给2021做一个小结
    http协议相关面试题
    C# 相对路径 系统路径
    开源数据库全接触-MongoDB,Cassandra,Hypertable,CouchDB,Redis,HBase,Voldemort 等简介
    WebForms,MVC和网页的OAuth / OpenID的支持
    HTTP head 详解
    CAB 文件注册及内部INF 文件说明
    【ECJTU_ACM 11级队员2012年暑假训练赛(8) I Lucky Division】
  • 原文地址:https://www.cnblogs.com/lvxiaoning/p/4947584.html
Copyright © 2011-2022 走看看