没有合适的资源?快使用搜索试试~ 我知道了~
signal函数的使用
3星 · 超过75%的资源 需积分: 33 10 下载量 149 浏览量
2010-10-16
18:40:54
上传
评论
收藏 23KB DOCX 举报
温馨提示
试读
4页
signal系统函数调用提供了一种最简单的范例。然而,由于C原形声明的缘故使它看起来比实际复杂。signal函数将一个给定的函数和一个特定的信号联系。这里是FreeBSD中的定义(和一个typedef一起):
资源推荐
资源详情
资源评论
signal 函数的使用
signal 系统函数调用提供了一种最简单的范例。然而,由于 C 原形声明的缘故使它看起来
比实际复杂。signal 函数将一个给定的函数和一个特定的信号联系。这里是 FreeBSD 中
的定义(和一个 typedef 一起):
引用:
typedef void (*sig_t) (int);
sig_t signal(int sig, sig_t func);
第一个参数是目标信号。func 参数是一个指针,指向某个处理该信号的函数。这个处理信
号函数带有一个 int 型参数,并应返回 void。signal 函数中的 func 参数也可以设定为下
面的一些值:
引用:
SIG_IGN:
如果
func
参数被设置为
SIG_IGN
,该信号将被忽略。
SIG_DFL:
如果
func
参数被设置为
SIG_DFL
,该信号会按照确定行为处理。
PS
:
sig
信号的可能类型:
#dene SIGHUP" "" "" " 1" "" " /* hangup */
SIGHUP 是 Unix 系统管理员很常用的一个信号。许多后台服务进程在接受到该信号后将
会重新读取它们的配置文件。然而,该信号的实际功能是通知进程它的控制终端被断开。
缺省行为是终止进程。
#dene SIGINT" "" "" " 2" "" " /* interrupt */
对于 Unix 使用者来说,SIGINT 是另外一个常用的信号。许多 shell 的 CTRL-C 组合使得
这个信号被大家所熟知。该信号的正式名字是中断信号。缺省行为是终止进程。
#dene SIGQUIT" "" "" "3" "" " /* quit */
SIGQUIT 信号被用于接收 shell 的 CTRL-/组合。另外,它还用于告知进程退出。这是一个
常用信号,用来通知应用程序从容的(译注:即在结束前执行一些退出动作)关闭。缺省行
为是终止进程,并且创建一个核心转储。
#dene SIGILL" "" "" " 4" "" " /* illegal instr. (not reset when caught) */
如果正在执行的进程中包含非法指令,操作系统将向该进程发送 SIGILL 信号。如果你的程
序使用了线程,或者 pointer functions,那么可能的话可以尝试捕获该信号来协助调试。
(注意:原文这句为:“If your program makes use of use of threads, or pointer
functions, try to catch this signal if possible for aid in debugging.”。中间的两个
use of use of,不知是原书排版的瑕疵还是我确实没有明白其意义;另外,偶经常听说
functions pointer,对于 pointer functions,google 了一下,应该是 fortran 里面的
东西,不管怎样,还真不知道,确切含义还请知道的兄弟斧正。)缺省行为是终止进程,
并且创建一个核心转储。
#dene SIGTRAP" "" "" "5" "" " /* trace trap (not reset when caught) */
SIGTRAP 这个信号是由 POSIX 标准定义的,用于调试目的。当被调试进程接收到该信号
时,就意味着它到达了某一个调试断点。一旦这个信号被交付,被调试的进程就会停止,
并且它的父进程将接到通知。缺省行为是终止进程,并且创建一个核心转储。
#dene SIGABRT" "" "" "6" "" " /* abort() */
SIGABRT 提供了一种在异常终止(abort)一个进程的同时创建一个核心转储的方法。然而
如果该信号被捕获,并且信号处理句柄没有返回,那么进程不会终止。缺省行为是终止进
程,并且创建一个核心转储。
#dene SIGFPE" "" "" " 8" "" " /* @oating point exception */
资源评论
- leajian2013-06-09谢谢分享,因为之前以为系统的singal调用有问题,现在解决了,这个范例有一定参考意义
Evan__
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功