GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué código de error devuelve un proceso que falla en el segmento?

Cuando finaliza un proceso, el shell solo almacena un código de retorno de 8 bits, pero establece el bit alto si el proceso finalizó de manera anormal. Pero debido a que su proceso finaliza por una falla de segmentación, generalmente la señal que se envía es SIGSEGV (referencia de memoria no válida) que tiene un valor de 11.

Entonces, debido a que su proceso terminó de manera anormal, tiene 128 y luego agrega el valor de la señal que terminó el proceso, que fue 11, y obtiene 139.


La llamada al sistema relevante (que da el estado de un proceso finalizado) es waitpid(2). El 139 es para WIFSIGNALED y WTERMSIG etc... En Linux, los bits reales se describen en el archivo interno /usr/include/bits/waitstatus.h que se incluye desde <sys/wait.h> encabezado

El wait , waitpid la llamada es estándar en POSIX y también lo son los nombres de las macros (como WTERMSIG etc...). La implementación real de estas macros y los números de señal reales, por lo tanto, el código proporcionado por el shell, son específicos de la implementación.

La página de manual de Signal(7) Linux proporciona el número de señales.


Linux
  1. ¿Qué hace Echo $? ¿¿Hacer??

  2. “e:El subproceso /usr/bin/dpkg devolvió un código de error (1)” ¿Qué significa esto?

  3. ¿Qué devuelve malloc(0)?

  4. pthread_exit frente a retorno

  5. ¿Qué significa decir que el kernel de Linux es preventivo?

¿Qué pasa si 'matar -9' no funciona?

¿Código de salida predeterminado cuando finaliza el proceso?

¿Qué significa en la salida de Ps?

¿Qué indica esta estadística de proceso?

¿Qué es la tabla de procesos de Linux? ¿En qué consiste?

¿Qué significa __init en el código del kernel de Linux?