博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
信号通讯
阅读量:6069 次
发布时间:2019-06-20

本文共 1027 字,大约阅读时间需要 3 分钟。

一。核心理论

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

转载于:https://www.cnblogs.com/lvxiaoning/p/4947584.html

你可能感兴趣的文章
ansible学习记录
查看>>
网思科技校园网计费解决方案
查看>>
我的友情链接
查看>>
携程 Apollo分布式部署
查看>>
2017 Hackatari Codeathon B. 2Trees(深搜)(想法)
查看>>
单词统计
查看>>
输入一个数字计算圆的面积
查看>>
在Delphi中隐藏程序进程
查看>>
AngularJS PhoneCat代码分析
查看>>
MEF元数据应用说明
查看>>
maven错误解决:编码GBK的不可映射字符
查看>>
2016/4/19 反射
查看>>
SharePoint Wiki发布页面的“保存冲突”
查看>>
oracle 10g 数据库与客户端冲突导致实例创建无监听问题
查看>>
Delphi中读取文本文件的方法(实例一)
查看>>
Linux常用命令
查看>>
Android开源代码解读の使用TelephonyManager获取移动网络信息
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>