2009-11-12 9 views

Respuesta

10

Sí, curiosamente, hay una forma estándar de obtener un mensaje de cadena de una señal en POSIX. Es, por coincidencia, strsignal(). Desde POSIX.1-2008:

La función strsignal() asignará el número de señal en signum a una cadena definida por la implementación y le devolverá un puntero. Utilizará el mismo conjunto de mensajes que la función psignal().

Un entorno que no le proporciona esta función no es compatible con POSIX. Aunque es relativamente nuevo (el número 7 salió en 2008), tengo una página man para strsignal() en Mac OS X, por lo que es una buena señal.

+0

Gracias: http://tinyurl.com/d4z9ev La página man de GNU, que dice "Esta función no es parte de ningún estándar", obviamente necesita una actualización. –

+0

@Norman: ¿una página de 'hombre' necesita ser actualizada? ¡Herejía! Aclamaciones. –

2

La matriz definida externamente sys_siglist contiene las descripciones de las señales para cada número de señal, y es un problema estándar en BSD.

#include <signal.h> 

extern const char *const sys_siglist[]; 
+0

+1 No es estándar per se, pero es útil y se encuentra más comúnmente. – pilcrow

Cuestiones relacionadas