![]() | Este artículo o sección necesitareferencias que aparezcan en unapublicación acreditada. Busca fuentes:«SIGBUS» –noticias ·libros ·académico ·imágenes Este aviso fue puesto el 11 de febrero de 2021. |
SIGBUS | ||
---|---|---|
Descripción | Error en el bus | |
Acción por defecto | Terminación anormal del proceso | |
SA_SIGINFO macros | ||
BUS_ADRALN | alineamiento inválido de dirección | |
BUS_ADRERR | Dirección física inexistente | |
BUS_OBJERR | Error de hardware específico del objeto | |
En plataformas compatibles conPOSIX,SIGBUS es laseñal que envía unprograma cuando ha habido unerror en el bus. En elcódigo fuente, SIGBUS es unaconstante simbólica definida en elarchivo de cabecera<signal.h>
. Se usan nombres simbólicos de señales porque los números de las señales puede variar de una plataforma a otra.
SIG es un prefijo común para nombres de señales.BUS se refiere albus de datos en el contexto de un error en el bus.
Los programas suelen lanzar la señal SIGBUS cuando hay un tratamiento inadecuado de la memoria:
Para más información, véaseerror en el bus.
Elsistema operativo puede informar a la aplicación de la naturaleza del error usando lapila de señales, usada por losdesarrolladores paradepurar sus programas o tratar errores.
La acción por defecto de un programa al recibir la señal SIGBUS es una terminación anormal. Esto terminará elproceso, pero puede generar un archivo devolcado de memoria que sea útil en la depuración, así como también otras acciones que dependen de cada plataforma.
SIGBUS puede ser tratada. Esto es, las aplicaciones pueden pedir que cuando ocurra se ejecute alguna acción. Ejemplos de estas acciones pueden ser ignorarla, llamar a unafunción, o restaurar la acción por defecto. En algunas circunstancias, ignorar la señal SIGBUS puede producir uncomportamiento indefinido.
Un ejemplo de aplicación que puede tratar la señal SIGBUS es undepurador, el cual puede comprobar la pila de señales e informar al desarrollador de lo que ha ocurrido y dónde ha terminado el programa.
La señal SIGBUS normalmente es generada por el sistema operativo, pero un usuario con los permisos adecuados puede usarkill
para enviar dicha señal a un proceso.