信号之其他特征
依赖于实现的信号的其他特征。
1、信号名字
某些系统提供数组
extern char *sys_siglist[];
数组下标是信号编号,给出一个指向信号字符串名字的指针。
这些系统通常也提供函数psignal。
#include <signal.h> void psignal(int signo, const char * msg);
字符串msg(通常是程序名)输出到标准出错文件,后接一个冒号和一个空格,再接着对该信号的说明,最后是一个换行符。该函数类似于perror(http://www.cnblogs.com/nufangrensheng/p/3495426.html)。
另一个常用的函数是strsignal。它类似于strerror(http://www.cnblogs.com/nufangrensheng/p/3495426.html)。
#include <string.h> char *strsignal( int signo ); 返回值:指向描述该信号的字符串的指针
给出一个信号编号,strsignal将返回说明该信号的字符串。应用程序可以用该字符串打印关于接收到信号的出错消息。
2、信号映射
Solaris提供一对函数,一个函数将信号编号映射为信号名,另一个则反之。
#include <signal.h> int sig2str(int signo, char *str); int str2sig(const char *str, int *signop); 两个函数的返回值:若成功则返回0,若出错则返回-1
sig2str函数将给定的信号编号翻译成字符串,并将结果存放在str指向的存储区。
str2sig函数将给出的名字翻译成信号编号。该信号编号存放在signop指向的整型中。名字要么是不带“SIG”前缀的信号名,要么是表示十进制信号编号的字符串(例如”9“)。
本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。