linux 系统对信号的处理方法,Linux系统信号处理方法的应用

2003年第 3期 通信与广播电视 3l

Linux系统信号处理方法的应用

王玉华 查朝云 李存虎

摘 要

本文主要对Linux系统中的信号处理方法进行了描述,举例说明了信号处理在

站控软件中的应用。

关键词:进程 信号处理 站控软件

Application of si al Processing Technique in Linux System

W ang Yu·-Hua Zha Chao·-Yun Li Curl·-Hu

Abstract

This paper describes mainly the signal processing technique in Linux system, and

shows its application in station—controlled software.

Key words:proces sign al processing station—controled software

、 概 述

Linux是一个多系统、多平台、运行在个人计算机和工作站上的Unix操作系统。由于它

有支持多文件系统,网络功能强大,支持 TCP/IP协议等优点,所以我们开发站控 (站内监

控)软件也选择了Linux操作系统。Linux系统中的进程是一个程序的执行,它是一个动态

的概念,只有进程才能被调度至 CPU运行。在我们编写的网络程序中,为了使进程能在同

一 项任务上协调工作,让它们彼此之间必须能够通信,我们常使用信号处理。信号是一种软

中断,它提供了一种通知进程某个事件发生的机制,是 Linux中进程问同步和通信的工具,

它让一个进程被另一个进程 (或内核)异步地中断处理某个事件,处理结束后,被中断的

进程从中断点重新执行,并且进程在它的执行期间的任何时刻均可能收到信号。

二、信 号 处 理 的 方 法

在一个信号的生命过程中有两个阶段:生成和传送。当导致信号的某些事件发生时,如

果需要通知某个进程,内核就会产生一个信号,系统将它传送给进程。进程可以通过屏蔽来

阻塞信号的传递。如果一个被阻塞的信号产生了,而且对信号的处理不是忽略,则信号会一

直悬挂到解除阻塞或者信号处理函数被设成忽略。在信号产生和对它们进行处理之间,信号

被 “挂起”(pending)。系统在信号的产生之后传递之前允许改变它的处理函数,当该进程

发现信号到来阻塞解除后,就执行信号处理函数。在信号处理函数中,可以使用定时器函数

维普资讯 http://www.cqvip.com

32 通信与广播电视 2003年第3期

(alarm),非局部跳转函数 (sigsetjmp和siglongjmp)等处理某些事情。信号必须有其目的进

程,即它必须被发送给一个进程。Linux系统中定义了一系列的信号,这些信号可以由系统

内核产生 ,也可由系统中其它进程产生 ,只要这些进程有足够的权限。可以用 函数 kil产生

信号。信号定义在文{~:/usr/include/bits/signum.h中。下面举例介绍一些信号:

信号名 说明 默认动作

SIGHUP 终端挂断 Exit

SIGINT 用户中断 () Exit

SIGQUIT 用户退出 () Abort

SIGABRT 异常终止 Abort

SIGBUS 总线错误 Abort

SIGKILL 不能被忽略的终止进程信号 Exit

SIGUSRl 用户自定义信号 Exit

SICSEGV 段失效,存储器访问越界 Abort

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值