Відповіді:
У чому різниця між exit(0)і exit(1)в C мовою?
exit(0)вказує на успішне завершення програми і воно є повністю портативним, тоді як
exit(1)(зазвичай) вказує на невдале завершення. Однак його використання не є портативним.
Зверніть увагу, що стандарт C визначає EXIT_SUCCESSі EXIT_FAILUREповертає статус завершення з програми C.
0і EXIT_SUCCESSє значеннями, визначеними стандартом для вказівки на успішне припинення, однак, EXIT_FAILUREє лише стандартним значенням для повернення невдалого припинення. 1використовується для того ж у багатьох реалізаціях.
Довідка:
Стандарт C99: 7.20.4.3 exitФункція
Пара 5
Нарешті, контроль повертається до середовища хоста. Якщо значення статусу дорівнює нулю, або
EXIT_SUCCESSповертається визначена реалізацією форма успішного припинення статусу. Якщо значення статусуEXIT_FAILURE, повертається визначена реалізацією форма невдалого припинення статусу. В іншому випадку статус, що повертається, визначається реалізацією.
exitнайменше з ваших проблем (пекло, там навіть може бути недоступна бібліотека C. НІЩО НЕ ПОРТАТИВНО !!! 111).
exitз будь-яким непарним значенням означає успіх. exit(0)розглядається як особливий випадок задля відповідності C. Так, POSIX є стандартом, але не всі системи відповідають йому. Якщо ви хочете написати код, який передбачає POSIX, ви можете це зробити, але це обмежує портативність вашого коду.
exit у мові C приймає ціле число, що представляє статус виходу.
Зазвичай статус виходу 0 вважається успішним або навмисним виходом, спричиненим успішним виконанням програми.
Статус виходу 1 вважається помилкою, і найчастіше це означає, що програмі з якихось причин довелося вийти, і вона не змогла успішно завершити все в звичайному потоці програми.
Ось ресурс GNU, який розповідає про статус виходу.
Як заявив @Als, замість 0 та 1 слід використовувати дві константи.
EXIT_SUCCESS визначається стандартом рівним нулю.
EXIT_FAILURE не обмежується стандартом як одне ціле, але багато систем дійсно реалізують це як одне ціле.
Різниця полягає у значенні, яке повертається в середовище, і 0в першому випадку, і 1в другому випадку:
$ ./prog_with_exit_0
$ echo $?
0
$
і
$ ./prog_with_exit_1
$ echo $?
1
$
Також зауважте, що значення макросів EXIT_SUCCESSі EXIT_FAILUREвикористовується як аргумент exitфункції визначено реалізацією, але, як правило, встановлюється відповідно 0і ненульовим числом. (POSIX вимагає EXIT_SUCCESS0). Тому зазвичай це exit(0)означає успіх і exit(1)невдачу.
exitВиклик функції з аргументом в mainфункції еквівалентно затвердження returnз тим же аргументом.
exit - це системний виклик, який використовується для завершення запущеного процесу, з якого він викликається. Параметр для виходу використовується для інформування батьківського процесу про стан дочірнього процесу. Отже, вихід (0) може використовуватися (і часто використовується) для позначення успішного виконання процесу, а вихід (1) для позначення помилки. посилальне посилання
exit(0)поводитись як return 0у main()функції, exit(1)поводитися як return 1. Стандартним є така mainфункція return 0, якщо програма закінчилася успішно, тоді як ненульове значення означає, що програма була припинена з якоюсь помилкою.
вихід (0) еквівалентний виходу (EXIT_SUCCESS).
вихід (1) еквівалентний виходу (EXIT_FAILURE).
При відмові зазвичай повертається будь-яке позитивне значення для виходу з процесу, яке можна знайти в оболонці за допомогою $ ?.
Значення більше 128, яке спричинене припиненням сигналом. Отже, якщо будь-яка команда оболонки, завершена сигналом, статус повернення повинен бути (128 + номер сигналу).
Наприклад:
Якщо будь-яка команда оболонки завершується SIGINT, тоді $? дасть 130 (128 + 2) (Тут 2 - номер сигналу для SIGINT, перевірка за допомогою kill -l)
exit () завжди слід викликати з цілим числом, а ненульові значення використовуються як коди помилок.
Див. Також: Використання функції exit ()
exit(0) означає, що Програма (Процес) нормально завершується ..
exit(1) означає, що програма (процес) зазвичай завершується невдало.
Якщо ви хочете спостерігати за цим, ви повинні знати обробку сигналів та управління процесами в Unix ...
знати про sigaction, watipid()..for () ... такі .... API ...........
exit function. У мові програмування C функція виходу викликає всі функції, зареєстровані на виході, і завершує програму.
exit(1)означає, що програма (процес) завершується невдало.
Буфери файлів очищаються, потоки закриваються, а тимчасові файли видаляються
exit(0) означає, що Програма (Процес) успішно завершується.
EXIT_FAILURE) недостатньо.