Librería signal
signal.h es un archivo de cabecera definido en la Blibioteca estándar de C para especificar como un programa maneja señales mientras se ejecuta. Una señal puede reportar un comportamiento excepcional en el programa (tales como la división por cero ), o una señal puede reportar algún evento asíncrono fuera del programa (como alguien está pulsando una tecla de atención interactiva en el teclado)
Una señal puede ser generada llamando a
raise
(para enviar una señal al proceso actual) o kill
(para enviar una señal a cualquier proceso). Cada implementación define lo que genera las señales (en su caso) y en qué circunstancias las genera. Una implementación puede definir otras señales además de las que figuran en esta lista. La cabecera estándar <signal.h> pueden definir macros adicionales con nombres que empiezan con SIG para especificar los valores de señales adicionales. Todos los valores son expresiones constantes enteras >= 0.
Un manejador de la señal se puede especificar para todas las señales excepto dos (SIGKILL y SIGSTOP no puede ser atrapadas, bloqueadas o ignoradas). Un manejador de la señal es una función que el entorno de destino llama cuando se produce la señal correspondiente. El entorno de destino suspende la ejecución del programa hasta que vuelva la señal de controlador o llama a longjmp. Para una máxima portabilidad, un manejador de la señal asíncrona sólo debe:
- hacer llamadas (que tienen éxito) a la señal de la función
- asignar valores a los objetos de tipo volátiles
sig_atomic_t
- devolver el control a la función que la llamó
Si la señal informa de un error en el programa (y la señal no es asincrónica), el manejador de la señal puede terminala llamando a
abort
, exit
, o longjmp
.
Funciones miembro
int raise(int sig)
. Envia una señal artificialmente.
psignal(int sig, const char *s)
, devuelve a stderr una cadena que representa un numero de señal. Esta en 4.3BSD, Solaris y Linux, pero no esta especificada por POSIX o SUS.
En los mismos sistemas, string.h contiene la función no estandar
strsignal(int sig)
que opera de la misma forma que strerror.void* signal(int sig, void (*func)(int))
, establece las medidas adoptadas cuando el programa recibe la señalsig
. Si el valor de func es SIG_DFL, se usará el manejo por defecto para esa señal. Si el valor de func es SIG_IGN, la señal será ignorada. De lo contrario se apuntará a una función manejador de señal que se llamará cuando la señar se active.
Tipos miembro
typedef i-type sig_atomic_t
Macros miembro
- SIG_DFL - Usado para seleccionar el manejo por defecto.
- SIG_IGN - Usado para manejar una señal ignorándola.
- SIG_ERR - Un numero usado para errores.
Constante | Significado | Sistemas | |
---|---|---|---|
SIGHUP | Hangup | POSIX | |
SIGINT | Interrupt | ANSI | |
SIGQUIT | Quit | POSIX | |
SIGILL | Illegal instruction | ANSI | |
SIGABRT | Abort | ANSI | |
SIGTRAP | Trace trap | POSIX | |
SIGIOT | IOT trap | 4.2 BSD | |
SIGEMT | EMT trap | 4.2 BSD | |
SIGINFO | Information | 4.2 BSD | |
SIGFPE | Floating-point exception | ANSI | |
SIGKILL | Kill, unblock-able | POSIX | |
SIGBUS | Bus error | 4.2 BSD | |
SIGSEGV | Segmentation violation | ANSI | |
SIGSYS | Bad argument to system call | 4.2 BSD | |
SIGPIPE | Broken pipe | POSIX | |
SIGALRM | Alarm clock | POSIX | |
SIGTERM | Termination | ANSI | |
SIGUSR1 | User-defined signal 1 | POSIX | |
SIGUSR2 | User-defined signal 2 | POSIX | |
SIGCHILD | Child status has changed | POSIX | |
SIGCLD | Same as SIGCHLD | System V | |
SIGPWR | Power failure restart | System V | |
SIGXCPU | Exceeded CPU time | POSIX | |
SIGSTOP | Pause execution | POSIX | |
SIGCONT | Resume execution | POSIX |
Librería assert
Únicamente define la macro de depuración assert.Librería ctype
Contiene los prototipos de las funciones y macros de clasificación de caracteres.Tabla de referencia rápida:
Función Valores
isalnum (A - Z o a - z) o (0 - 9)
isalpha (A - Z o a - z)
isascii 0 - 127 (0x00-0x7F)
iscntrl (0x7F o 0x00-0x1F)
isdigit (0 - 9)
isgraph Imprimibles menos ' '
islower (a - z)
isprint Imprimibles incluido ' '
ispunct Signos de puntuación
isspace espacio, tab, retorno de línea, cambio de
línea, tab vertical, salto de página (0x09
a 0x0D, 0x20).
isupper (A-Z)
isxdigit (0 to 9, A to F, a to f)
Funciones
tolower toupper
Macros
isalnum isalpha isascii iscntrl
isdigit isgraph islower isprint
ispunct isspace isupper isxdigit
toascii
Librería errno
Define constantes para los códigos de error, puedes consultarlos editando el ficheroerrno.h.
Macros
errno
Librería float
Contiene parámetros de entorno, información sobre limitaciones y rangos para tiposreales.
Nota: Algunas macros serán definidas de igual o mayor en magnitud (valor absoluto) a
los valores indicados, a excepción de la macro FLT_ROUNDS.
Macros
DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX
DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP
DBL_MIN_EXP FLT_DIG FLT_EPSILON FLT_MANT_DIG
FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP FLT_MIN
FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX FLT_ROUNDS
LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG LDBL_MAX
LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN LDBL_MIN_10_EXP
LDBL_MIN_EXP