¿Alguien me puede decir? ¿Cuál es la diferencia entre exit(0)
y exit(1)
en lenguaje C?
¿Cuál es la diferencia entre exit(0)
y exit(1)
en lenguaje C?
exit(0)
indica la finalización exitosa del progtwig y es totalmente portátil, aunque
exit(1)
(normalmente) indica una terminación sin éxito. Sin embargo, su uso no es portátil.
Tenga en cuenta que el estándar C define EXIT_SUCCESS
y EXIT_FAILURE
para devolver el estado de terminación de un progtwig C.
0
y EXIT_SUCCESS
son los valores especificados por el estándar para indicar una terminación exitosa, sin embargo, solo EXIT_FAILURE
es el valor estándar para devolver una terminación sin éxito. 1
embargo, 1
se usa para el mismo en muchas implementaciones.
Referencia:
Estándar C99: 7.20.4.3 La función de exit
Para 5
Finalmente, el control se devuelve al entorno host. Si el valor de estado es cero o
EXIT_SUCCESS
, seEXIT_SUCCESS
una forma definida por la implementación de la terminación exitosa de estado. Si el valor del estado esEXIT_FAILURE
, seEXIT_FAILURE
una forma definida por la implementación del estado de terminación sin éxito. De lo contrario, el estado devuelto está definido por la implementación.
exit
en el lenguaje C toma un entero que representa un estado de salida.
Normalmente, un estado de salida de 0 se considera un éxito o una salida intencional causada por la ejecución exitosa del progtwig.
Un estado de salida de 1 se considera un error, y por lo general significa que el progtwig tuvo que salir por algún motivo y no pudo completar con éxito todo el flujo normal del progtwig.
Aquí hay un recurso de GNU que habla sobre el estado de salida.
Como @Als ha indicado, se deben usar dos constantes en lugar de 0 y 1.
EXIT_SUCCESS
está definido por el estándar como cero.
EXIT_FAILURE
no está restringido por el estándar a ser uno, pero muchos sistemas lo implementan como uno solo.
exit(0)
indica que el progtwig terminó sin errores. exit(1)
indica que hubo un error.
Puede utilizar diferentes valores distintos de 1
para diferenciar entre diferentes tipos de errores.
La diferencia es que el valor devuelto al entorno es 0
en el primer caso y 1
en el último caso:
$ ./prog_with_exit_0 $ echo $? 0 $
y
$ ./prog_with_exit_1 $ echo $? 1 $
También tenga en cuenta que los valores de macros EXIT_SUCCESS
y EXIT_FAILURE
utilizados como argumento para exit
función están definidos por la implementación, pero generalmente se establecen en 0
y un número distinto de cero, respectivamente. (POSIX requiere que EXIT_SUCCESS
sea 0). Por lo general, exit(0)
significa un éxito y exit(1)
un error.
Una llamada a la función de exit
con un argumento en la función main
es equivalente a la statement return
con el mismo argumento.
exit es una llamada del sistema que se utiliza para finalizar un proceso en ejecución desde el que se llama. El parámetro para salir se utiliza para informar al proceso principal sobre el estado del proceso secundario. Por lo tanto, la salida (0) se puede usar (y se usa a menudo) para indicar la ejecución exitosa de un proceso y la salida (1) para marcar un error. Link de referencia
exit(0)
comporta como return 0
en la función main()
, exit(1)
comporta como return 1
. El estándar es, que la función main
return 0
, si el progtwig terminó con éxito mientras que un valor distinto de cero significa que el progtwig terminó con algún tipo de error.
exit (0) es equivalente a exit (EXIT_SUCCESS).
exit (1) es equivalente a exit (EXIT_FAILURE).
En caso de fallo, normalmente se obtiene un valor positivo para salir del proceso, que puede encontrar en el shell utilizando $.
Valor más de 128 que se provoca la terminación por señal. Por lo tanto, si cualquier comando de shell termina con una señal, el estado de retorno debe ser (128 + número de señal).
Por ejemplo:
Si cualquier comando de shell es terminado por SIGINT entonces $? dará 130 (128 + 2) (Aquí 2 es el número de señal de SIGINT, verifique usando kill -l)
Cuando el ejecutable finaliza (sale), devuelve un valor al shell que lo ejecutó. exit(0)
generalmente indica que todo está bien, mientras que la exit(1)
indica que algo no está bien.
exit () siempre debe llamarse con un valor entero y los valores distintos de cero se utilizan como códigos de error.
Ver también: Uso de la función exit ().
exit(0)
significa que el Progtwig (Proceso) termina normalmente con éxito ..
exit(1)
significa que el progtwig (proceso) termina normalmente sin éxito ..
Si desea observar esto, debe conocer el manejo de señales y la gestión de procesos en Unix …
saber sobre sigaction
, watipid()
..for () … such …. API ………..