From bfe05aa289054744b68f136b701705cfd242c4de Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Mon, 18 May 2020 17:05:05 -0300 Subject: 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 Reviewed-by: Carlos O'Donell --- include/signal.h | 3 ++- include/string.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/signal.h b/include/signal.h index 3d6315b741..b4ee02d153 100644 --- a/include/signal.h +++ b/include/signal.h @@ -16,7 +16,8 @@ libc_hidden_proto (__libc_current_sigrtmin) libc_hidden_proto (__libc_current_sigrtmax) extern const char * const __sys_siglist[_NSIG]; libc_hidden_proto (__sys_siglist) - +extern const char * const __sys_sigabbrev[_NSIG]; +libc_hidden_proto (__sys_sigabbrev) /* Now define the internal interfaces. */ extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler); diff --git a/include/string.h b/include/string.h index ce01ad8254..f4ce138622 100644 --- a/include/string.h +++ b/include/string.h @@ -53,6 +53,9 @@ extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen); extern char *__strerror_l (int __errnum, locale_t __loc); +extern const char *__sigdescr_np (int __errnum); +libc_hidden_proto (__sigdescr_np) + /* Get _STRING_ARCH_unaligned. */ #include #endif -- cgit 1.4.1