信号之其他特征

依赖于实现的信号的其他特征。

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/

原文地址:https://www.cnblogs.com/nufangrensheng/p/3517477.html