Códigos de salida en C/C++ con ejemplos

El propósito de la función exit() es terminar la ejecución de un programa. El “retorno 0” (o EXIT_SUCCESS ) implica que el código se ha ejecutado correctamente sin ningún error. Los códigos de salida que no sean «0» (o EXIT_FAILURE ) indican la presencia de un error en el código. Entre todos los códigos de salida, los códigos 1 , 2 , 126 – 165 y 255 tienen significados especiales y, por lo tanto, deben evitarse para los códigos de salida definidos por el usuario.
Sintaxis 
 

void exit(int return_code)

Nota: También se debe tener en cuenta que un código de salida con un valor superior a 255 devuelve un módulo de código de salida 256 .
Por ejemplo: si ejecutamos una instrucción exit(9999) , ejecutará exit(15) como 9999%256 = 15.
Algunos de los códigos de salida son : 
 

  • exit(1): Indica terminación anormal de un programa quizás como resultado de un problema menor en el código.
  • exit(2): Es similar a exit(1) pero se muestra cuando el error ocurrido es mayor. Esta declaración rara vez se ve.
  • exit(127): Indica comando no encontrado.
  • exit(132): Indica que un programa fue abortado (recibió SIGILL ), quizás como resultado de una instrucción ilegal o que el binario probablemente esté corrupto.
  • exit(133): Indica que un programa fue abortado (recibió SIGTRAP ), quizás como resultado de dividir un entero por cero.
  • exit(134): Indica que un programa fue abortado (recibió SIGABRT ), quizás como resultado de una aserción fallida.
  • exit(136): Indica que un programa fue abortado (recibió SIGFPE ), quizás como resultado de una excepción de punto flotante o un desbordamiento de enteros.
  • exit(137): Indica que un programa ocupó demasiada memoria.
  • exit(138): Indica que un programa fue abortado (recibió SIGBUS ), quizás como resultado de un acceso a memoria desalineado.
  • exit(139): Indica falla de segmentación , lo que significa que el programa estaba tratando de acceder a una ubicación de memoria que no se le asignó. Esto ocurre principalmente al usar punteros o intentar acceder a un índice de array fuera de los límites.
  • exit(158/152): Indica que se abortó un programa (recibió SIGXCPU ), quizás como resultado de que se excedió el límite de tiempo de la CPU.
  • exit(159/153): Indica que un programa fue abortado (recibió SIGXFSZ ), quizás como resultado de que se excedió el límite de tamaño de archivo.

Por lo tanto, los diversos códigos de salida ayudan al usuario a depurar el código. Por ejemplo, si uno recibe un código de salida de 139 , esto implica que el código tiene una falla de segmentación y el código se puede depurar en consecuencia.
Programa 1: el siguiente 
programa dará una falla de segmentación :
 

CPP

// C++ program to demonstrate Segmentation Fault
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    // An array of size 100
    int arr[100] = { 0 };
 
    // When we try to access the array out
    // of bound, it will give Segmentation Fault
    cout << arr[100001];
    return 0;
}

Salida: 
A continuación se muestra la salida del programa anterior: 
 

Programa 2: el siguiente 
programa dará un error de punto flotante :
 

CPP

// C++ program to demonstrate
// Floating Point Error
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    int a = 1, b = 0;
 
    // When we try to divide by zero
    // it should give SIGFPE
    cout << a / b;
    return 0;
}

Salida: 
A continuación se muestra la salida del programa anterior: 
 

Programa 3: el 
programa a continuación dará Exceso de límite de tiempo :
 

CPP

// C++ program to demonstrate TLE
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    // Below statement will give time
    // limit exceeded as well as memory
    // limit exceeded due to  infinite loop
    for (;;) {
        int arr[10000];
    }
    return 0;
}

Salida: 
A continuación se muestra la salida del programa anterior: 
 

Publicación traducida automáticamente

Artículo escrito por shreyasishruti y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *