zoukankan      html  css  js  c++  java
  • 显示信号描述

    【摘自《Linux/Unix系统编程手册》】

    每个信号都有一串与之相关的可打印说明。这些描述位于数组 sys_siglist 中。例如,可以用 sys_siglist[SIGPIPE] 来获取 SIGPIPE 信号(管道断开)的描述。然而,较之于直接饮用 sys_siglist 数组,还是推荐使用 strsignal() 函数。

    #define _BSD_SOURCE
    #include <signal.h>
    
    extern const char* const sys_siglist[];
    
    #define _GNU_SOURCE
    #include <string.h>
    
    char* strsignal(int sig);

    strsignal() 函数对 sig 参数进行边界检查,然后返回一枚指针,指向针对该信号的可打印描述字符串,或者是当信号编号无效时指向错误字符串。(在其他一些UNIX实现中,strsignal() 函数会在 sig 无效时返回空值)

    除去边界检查之外,strsignal() 函数较之于直接引用 sys_siglist 数组的另一优势是对本地(local)设置敏感,所以显示信号描述时会使用本地语言。

    psignal() 函数(在标准错误设备上)所示为 msg 参数所给定的字符串,后面跟一个冒号,随后是对应于 sig 的信号描述。和 strsignal() 一样,psignal() 函数也对本地设置敏感。

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

    示例:

     1 #define _GNU_SOURCE
     2 #include <stdio.h>
     3 #include <signal.h>
     4 
     5 int main(int argc, char* argv[])
     6 {
     7     printf("SIGPIPE description is : %s
    ", strsignal(SIGPIPE));
     8 
     9     psignal(SIGPIPE, "SIGPIPE description is");
    10 }

    输出:

    SIGPIPE description is : Broken pipe
    SIGPIPE description is: Broken pipe
  • 相关阅读:
    cogs.12运输问题2题解
    7.30考试password
    [Lydsy2017年4月月赛]抵制克苏恩题解
    NOIP2015斗地主题解 7.30考试
    「技巧拾珠」线段树维护区间最值
    COGS775 山海经
    POJ2942 Knights of the Round Table
    【学习笔记】二分图
    Luogu3057 (USACO12 FEB) Nearby Cows
    POJ2152 Fire
  • 原文地址:https://www.cnblogs.com/jingyg/p/5181433.html
Copyright © 2011-2022 走看看