10.21 信号_其他特征

1. 信号名字

    某些系统提供数组 extern char *sys_siglist[]; 数组下标是信号编号,给出一个指向信号字符串的指针。

 

    这些系统通常也提供函数psignal。

  • #include <signal.h>
  • void psignal(int signo,const char *msg);

字符串msg(通常是程序名)输出到标准出错文件,后接一个冒号和一个空格,再接着对该信号的说明,最后是一个换行符。该函数类似于perror。

    另一个常用函数是strsignal。它类似于strerror。

  • #include <string.h>
  • char *strsignal(int signo);

返回值:指向描述该信号的字符串的指针

给出一个信号编号,strsignal将返回说明该信号的字符串。应用程序可用该字符串打印关于接收到信号的出错消息。

 

2. 信号映射

    有一对函数,一个函数将信号编号映射为信号名,另一个则反之。

  • #include <signal.h>
  • int sig2srt(int signo, char *str);
  • int str2sig(const char *str, int *signop);

返回值:成功返回0,出错返回-1

    sig2srt函数将给定信号编号翻译成字符串,并将结果存放在str指向的存储区。该字符串包括不带“SIG”前缀的信号名。

    str2sig函数将给出的名字翻译成信号编号。该信号编号存放在signop指向的整型中。名字要么是不带“SIG”前缀的信号名,要么是表示十进制信号编号的字符串(例如“9”)。

    注意,sig2str和str2sig偏离了一般实践,当它们失败时,并不设置errno。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值