1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

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>
This commit is contained in:
Adhemerval Zanella
2020-05-18 17:05:05 -03:00
parent 4f92497488
commit bfe05aa289
43 changed files with 236 additions and 10 deletions

View File

@ -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);