diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-05-18 17:05:05 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-07-07 14:57:14 -0300 |
commit | bfe05aa289054744b68f136b701705cfd242c4de (patch) | |
tree | 72dcbbc0e28edb061e7a25d22b27518acb6f3023 /string/strsignal.c | |
parent | 4f92497488c90fea1ef6796c6d564ff5f8a3add6 (diff) | |
download | glibc-bfe05aa289054744b68f136b701705cfd242c4de.zip glibc-bfe05aa289054744b68f136b701705cfd242c4de.tar.gz glibc-bfe05aa289054744b68f136b701705cfd242c4de.tar.bz2 |
string: Add sigabbrev_np and sigdescr_np
The sigabbrev_np returns the abbreviated signal name (e.g. "HUP" for
SIGHUP) while sigdescr_np returns the string describing the error
number (e.g "Hangup" for SIGHUP). Different than strsignal,
sigdescr_np does not attempt to translate the return description and
both functions return NULL for an invalid signal number.
They should be used instead of sys_siglist or sys_sigabbrev and they
are both thread and async-signal safe. They are added as GNU
extensions on string.h header (same as strsignal).
Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
and s390x-linux-gnu.
Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'string/strsignal.c')
-rw-r--r-- | string/strsignal.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/string/strsignal.c b/string/strsignal.c index 701ce20..a9b911c 100644 --- a/string/strsignal.c +++ b/string/strsignal.c @@ -21,19 +21,14 @@ #include <string.h> #include <libintl.h> #include <tls-internal.h> -#include <array_length.h> /* Return a string describing the meaning of the signal number SIGNUM. */ char * strsignal (int signum) { - const char *desc = NULL; - - if (signum >= 0 && signum <= NSIG && signum < array_length (__sys_siglist)) - desc = __sys_siglist[signum]; - + const char *desc = __sigdescr_np (signum); if (desc != NULL) - return (char *) _(desc); + return _(desc); struct tls_internal_t *tls_internal = __glibc_tls_internal (); free (tls_internal->strsignal_buf); |