1. 首页
  2. 操作系统
  3. Unix
  4. signal函数-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

signal函数-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

上传者: 2024-07-15 20:21:29上传 PDF文件 18.16MB 热度 14次

10.3 signal函数

UNIX信号机制最简单的界面是signal函数。


#include <signal.h>

void (*signal (int signo, void (*func)(int))) (int);

signal.h>

返回:成功则为以前的信号处理配置,若出错则为SIG_ERR

signal函数由ANSI C定义。因为ANSI C不涉及多进程、进程组、终端I/O等,所以它对信号的定义非常含糊,以致于对UNIX系统而言几乎毫无用处。确实,ANSI C对信号的说明只用了2页,而POSIX.1的说明则用了15页。SVR4也提供signal函数,该函数可提供老的SVR2不可靠信号语义(10.4节将说明这些老的语义)。提供此函数主要是为了向下兼容要求此老语义的应用程序,新应用程序不应使用它。4.3+BSD也提供signal函数,但是它是用sigaction函数实现的(10.14节将说明sigaction函数),所以在4.3+BSD之下使用它提供新的可靠的信号语义。在讨论sigaction函数时,提供了使用该函数的signal的一个实现。本书中的所有实例均使用程序10-12中给出的signal函数。

signo参数是表10-1中的信号名。func的值是:(a)常数SIG_IGN,或(b)常数SIG_DFL,或(c)当接到此信号后要调用的函数的地址。如果指定SIG_IGN,则向内核表示忽略此信号。(记住有两个信号SIGKILL和SIGSTOP不能忽略。)如果指定SIG_DFL,则表示接到此信号后的动作是系统默认动作(见表10-1中的最后1列)。当指定函数地址时,我们称此为捕捉此信号。我们称此函数为信号处理程序(signal handler)或信号捕捉函数(signal-catching function)。

第10章信号

阅读更多关于信号处理的内容可以参考以下资源:

信号处理函数解析signal sleepraise等等函数的使用

MATLAB信号处理函数说明

下载地址
用户评论