分类: 系统运维
2012-03-31 07:38:46
在本节,我们描述一些补充的实现相关的信号特性。
信号名
一些系统提供了数组:extern char *sys_siglist[];。这个数组索引是信号号,给出信号的字符串名字的一个指针。
FreeBSD、Linux和Mac OS X都提供这个信号名的数组。Solaris也有,但使用了名字_sys_siglist。
这些系统通常也提供函数psignal。
字符串msg(通常是程序名)被输出到标准错误,接着是一个冒号和一个空格,接着是一个信号的描述,最后是一个换行符。这个函数类似于perror(1.7节)
另一个普遍的函数是strsignal。这个函数和strerror相似(1.7节)。
给定一个信号号,strsignal将返回一个描述这个信号的字符串。这个字符串可以被应用用来打开关于收到的信号的错误消息。
本
文的所有平台都提供psignal和strsignal函数,但是有区别。在Solaris
9上,strsignal将返回一个空指针,如果信号号无效,而FreeBSD、Linux、Mac OS
X返回指明这个信号号不识别的信息。还有为了得到Solaris上的psignal的函数原型,你需要包含
信号映射
Solaris提供了一对函数来把一个信号号和一个信号名相互映射。
这些函数在写一个需要接受和打印信号名和数值的交互程序时很有用。
sig2str
函数把给定信号号翻译为一个字符串并把结果存储在由str指向的内存里。调用者必须保证内存足够大以容纳最长的字符串,包括终止空字节。Sloaris提
供了常量SIG2STR_MAX在