Linux Signal (1): 基本概念

原创 2007年09月14日 10:51:00

1. 信号是软件中断:

信号提供了一种处理异步事件的方法. 每个信号都有一个名字, 他们以SIG开头, 如SIGALRM是闹钟信号, 当由alarm函数设置的计时器超时后产生此信号, 然后由SIGALRM的信号处理函数接管处理, 处理之后返回调用alarm函数的应用程序中.

2. 信号编号:

在头文件<signal.h>中, 信号都用宏定义为正整数的信号编号, 不存在编号为0的信号, kill函数对编号为0的信号有特殊的作用. POSIX.1将编号为0的信号定义为空信号, 如果kill中的signo参数为0, 则kill仍执行正常的错误检查, 但不发送信号. 这常被用来通过kill的返回值确定一个特定进程是否存在.

3. 不可忽略/捕捉的信号:

大多数信号都可以通过忽略进行处理, 但SIGKILL和SIGSTOP这两个信号不能被忽略. 因为它们是向超级用户提供使进程终止或停止的可靠方法. 另外, 如果忽略某些硬件异常产生的信号(例如非法内存引用或除0), 则进程的行为是未定义的.

4. 介绍几个常见信号:

SIGINT: 当用户按某些终端键时, 引发终端产生的信号. 如Ctrl+C键, 这将产生中断信号(SIGINT). 它将停止一个已失去控制的程序.

SIGSEGV: 由硬件异常(除数为0, 无效的内存引用等等)产生的信号. 这些条件通常由硬件检测到, 并将其通知内核. 然后内核为该条件发生时正在运行的进程产生该信号.

SIGURG: 在网络连接上传来带外数据时产生.

SIGPIPE: 在管道的读进程已终止后, 一个进程写此管道时产生. 当类型为SOCK_STREAM的socket已不再连接时, 进程写到该socket也产生此信号.

SIGALRM: 进程所设置的闹钟时钟超时的时候产生.

SIGABRT: 进程调用abort函数时产生此信号, 进程异常终止.

SIGCHLD: 在一个进程终止或停止时, 它将把该信号发送给其父进程. 按系统默认, 将忽略此信号. 如果父进程希望被告知其子进程的这种状态改变, 则应该捕捉此信号. 通常是用wait系列函数捕捉, 如果不wait的话, 子进程将成为一个僵尸进程.

SIGIO: 此信号指示一个异步I/O事件.

SIGSYS: 该信号指示一个无效的系统调用.

SIGTSTP: 交互式停止信号. Ctrl+Z, 按下时, 终端将产生此信号, 进程被挂起.

 

Linux头文件作用&信号signal处理函数

1、  一些头文件的作用: :ANSI C。提供断言,assert(表达式) :GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含 :GCC。文...

Linux 信号signal处理机制

http://my.oschina.net/chenliang165/blog/125825.     最近写程序,各种bug各种错,有一回程序莫名退出,没报错,也没产生日志和core文件,貌似正常退...
  • tiany524
  • tiany524
  • 2013年11月30日 22:01
  • 12947

Linux编程signal函数使用

题目: 编写一段程序,使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按ctrl+c键),当捕捉到中断信号后,父进程用系统调用kill( )...

[APUE]第八章 进程控制

第八章 进程控制 引言:   如何创建进程?执行程序?进程终止? 讲述进程属性的各种ID---实际、有效、保存的用户和ID,他们是如何受到进程控制原语的影响。 解释器文件和system函数,...

vim 自动补全括号、引号等

将以下代码,复制粘贴到~/.vimrc中,然后保存,关闭所有的vim,然后打开就OK 了。 :inoremap ( ()i :inoremap ) =ClosePair(')') :inorema...

RSSI:Received Signal Strength Indication 基本概念

一、基本概念: RSSI:Received Signal Strength Indication接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。 ...

Linux磁盘及文件系统管理 1---- 磁盘基本概念

1 磁盘的基本概念     1  Track(轨道), Cylinder(柱面), Sector(扇区), Head(磁头)                         2 磁盘在Lin...

1.Linux基础操作:主题2 Shell的基本概念

1.什么是Shell

Linux设备模型(1)_基本概念

Linux设备模型(1)_基本概念 作者:wowo 发布于:2014-2-27 17:01 分类:统一设备模型 1. 前言 在“Linux内核的整体架构”中,蜗蜗有提到,由于Linux支持世...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux Signal (1): 基本概念
举报原因:
原因补充:

(最多只允许输入30个字)