c

Uso de la función exit()



(13)

Además de devolver un código de salida al proceso principal:

En UNIX, un aspecto importante que creo que se ha omitido es que exit () en las primeras llamadas (en orden inverso) todas esas funciones, que fueron registradas por atexit () llamada.

Por favor refiérase a SUSv4 para más detalles.

Quiero saber cómo y cuándo puedo usar la función exit() como el programa en mi libro:

#include<stdio.h> void main() { int goals; printf("enter number of goals scored"); scanf("%d",&goals); if(goals<=5) goto sos; else { printf("hehe"); exit( ); } sos: printf("to err is human"); }

Cuando lo ejecuto, muestra ERROR: llamada a la función indefinida exit () .

Además, quiero saber cómo puedo crear una opción para cerrar la ventana en la que se ejecuta el programa. Por ejemplo, hice un programa basado en menús que tenía varias opciones y uno de ellos era "salir del menú" . ¿Cómo puedo hacer que esto salga del programa (es decir, cerrar la ventana)?


Debe agregar una línea con #include <stdlib.h> para incluir ese archivo de encabezado y exit debe devolver un valor así asignar un entero en exit(any_integer) .


El siguiente ejemplo muestra el uso de la función exit() .

#include <stdio.h> #include <stdlib.h> int main(void) { printf("Start of the program..../n"); printf("Exiting the program..../n"); exit(0); printf("End of the program..../n"); return 0; }

Salida

Inicio del programa ....
Saliendo del programa ...


Escriba el archivo de encabezado #include<process.h> y reemplace exit(); con exit(0); . Esto definitivamente funcionará en Turbo C; para otros compiladores, no lo sé.


Incluya stdlib.h en su encabezado, y luego llame a abort(); en cualquier lugar que quieras salir de tu programa. Me gusta esto:

switch(varName) { case 1: blah blah; case 2: blah blah; case 3: abort(); }

Cuando el usuario ingresa al interruptor, acepta esto y se lo da al caso 3 donde llama a la función abort . Saldrá de su pantalla inmediatamente después de presionar la tecla enter.


Intenta usar exit(0); en lugar. La función de exit espera un parámetro entero. Y no te olvides de #include <stdlib.h> .


La función exit() es un tipo de función con un tipo de retorno sin un argumento. Está definido por el archivo de encabezado stdlib.

( exit(0) or exit(EXIT_SUCCESS)) usar ( exit(0) or exit(EXIT_SUCCESS)) o (exit(non-zero) o exit(EXIT_FAILURE) ) .


La función de exit se declara en el encabezado stdlib, por lo que debe tener

#include <stdlib.h>

en la parte superior de tu programa para poder usar la exit .

Tenga en cuenta también que exit toma un argumento entero, por lo que no puede llamarlo como exit() , tiene que llamar como exit(0) o exit(42) . 0 generalmente significa que su programa se completó con éxito, y los valores distintos de cero se utilizan como códigos de error.

También hay macros predefinidas EXIT_SUCCESS y EXIT_FAILURE , por ejemplo, exit(EXIT_SUCCESS);


Mala práctica de programación. El uso de una función goto es un completo no no en la programación C.
También incluya el archivo de encabezado stdlib.h escribiendo #include <iostream.h> para usar la función exit() . Recuerde también que la función exit () toma un argumento entero. Use exit(0) si el programa se completó exitosamente y exit(-1) o sale de la función con cualquier valor distinto de cero como argumento si el programa tiene error.


Prueba la salida de hombre .

Oh y:

#include <stdlib.h> int main(void) { /* ... */ if (error_occured) { return (EXIT_FAILURE); } /* ... */ return (EXIT_SUCCESS); }


Use process.h en lugar de stdlib y iostream ... Funcionará al 100%.


en Unix, al igual que los sistemas operativos, la salida pertenece al grupo de llamadas al sistema. las llamadas al sistema son llamadas especiales que permiten que el código de usuario (su código) llame al código del kernel. Entonces, exit call realiza algunas acciones de limpieza específicas del sistema operativo antes de devolver el control al sistema operativo, termina el programa.

#include <stdlib.h> // example 1 int main(int argc, char *argv){ exit(EXIT_SUCCESS); } // example 2 int main(int argc, char *argv){ return 0; }

Algunos compiladores le darán el mismo código de operación de estos dos ejemplos, pero otros no. Por ejemplo, el código de operación de la primera función no incluirá ningún tipo de opcode de posicionamiento de pila que se incluirá en el segundo ejemplo como para cualquier otra función. Puede compilar ambos ejemplos y desmontarlos y verá la diferencia.

Puede usar exit desde cualquier parte de su código y asegurarse de que el proceso finalice. No te olvides de incluir el parámetro entero.


exit(int code); se declara en stdlib.h por lo que necesita una

#include <stdlib.h>

También:
- No tiene ningún parámetro para la exit() , requiere una int así que proporcione uno.
- Grabar este libro, usa goto que es (para todos menos hackers del kernel de Linux) malo, muy, muy , MUY malo.

Editar:
Oh y

void main()

es malo, también, es:

int main(int argc, char *argv[])