Перейти к содержимому

Как завершить программу c

  • автор:

Как выйти из программы при определенном условии?

Мера: я заменил ‘exit(0);’ на ‘return 0;’ , всё заработало.

Отслеживать
4,306 14 14 золотых знаков 42 42 серебряных знака 93 93 бронзовых знака
ответ дан 11 сен 2016 в 6:08
user219751 user219751
1 1 1 бронзовый знак
Так что я замененыл ‘exit(0);’ на ‘return 0;’ е патом заработала праграма.
11 сен 2016 в 6:15
Вообще-то есть, заголовочный файл stdlib.h или cstdlib
11 сен 2016 в 7:41
return 0; поможет только в main() .
11 сен 2016 в 13:03
stdlib.h работает но, я не знаю что такое cstdlib.
13 сен 2016 в 4:59

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как преждевременно завершить программу в c++?

Используя return 0; программа бесконечно выводит:
Write your first number (or exit to exit programm):
Write your second number:
Enter your action (Examples: + / — / * / : / other):

Дополнено: Возможно это связано с тем, что я пишу код и компилирую через реплит (Онлайн среда)

  • Вопрос задан более двух лет назад
  • 421 просмотр

3 комментария

Простой 3 комментария

Функция exit

Функция exit выполняет немедленное завершение программы. Завершаемый процесс, как правило, выполняет очистку используемой памяти. Во-вторых, все функции, зарегистрированные вызовами atexit , выполняются в порядке, обратном порядку их регистрации. В таком случае, все используемые программой потоки закрываются, и временные файлы удаляются, и, наконец, управление возвращается ОС или другой программе.

Аргумент параметра value возвращается принимающей стороной (ОС или другой программой).

Параметры:

  • value
    Значение параметра value возвращается в родительский процесс. Как правило, возвращается значение 0 или EXIT_SUCCESS указывает на успешное завершение программы, и любое другое значение или значение макроса EXIT_FAILURE используется для указания об аварийном завершении программы.

Возвращаемое значение

Пример: исходный код программы

//пример использования функции exit #include #include #include int main() < FILE * ptrFile = fopen("file.txt","r"); if (ptrFile == NULL) < std::cout else < // операции с файлом >return 0; >

Завершение C-программы

Существует несколько способов завершения программы. Основными являются возврат из функции main()[17] и вызов функций exit(2), оба приводят к завершению выполнения задачи. Заметим, что процесс может завершиться по не зависящим от него обстоятельствам, например, при получении сигнала, действие по умолчанию для большинства из которых приводит к завершению выполнения процесса[18] (см. раздел «Сигналы» далее в этой главе). В этом случае функция exit(2) будет вызвана ядром от имени процесса.

Системный вызов exit(2) выглядит следующим образом:

void exit(int status);

Аргумент status, передаваемый функции exit(2), возвращается родительскому процессу и представляет собой код возврата программы. По соглашению программа возвращает 0 в случае успеха и другую величину в случае неудачи. Значение кода неудачи может иметь дополнительную трактовку, определяемую самой программой. Например, программа grep(1), выполняющая поиск заданных подстрок в файлах, определяет следующие коды возврата:

0 совпадение было найдено 1 совпадений найдено не было 2 синтаксическая ошибка или недоступны файлы поиска

Наличие кода возврата позволяет программам взаимодействовать друг с другом. Например, следующая программа (назовем ее fail) может являться условием неудачи и использоваться в соответствующих синтаксических конструкциях shell:

$ fail

$ echo $? Выведем код возврата программы fail

$ fail || echo fail Конструкция shell, использующая условие неудачи fail

Помимо передачи кода возврата, функция exit(2) производит ряд действий, в частности выводит буферизованные данные и закрывает потоки ввода/вывода. Альтернативой ей является функция _exit(2), которая не производит вызовов библиотеки ввода/вывода, а сразу вызывает системную функцию завершения ядра. Более подробно о процедурах завершения процесса см. раздел «Создание и управление процессами».

Задача может зарегистрировать обработчики выхода (exit handler), — функции, которые вызываются после вызова exit(2), но до окончательного завершения процесса. Эти обработчики, вызываемые по принципу LIFO (последний зарегистрированный обработчик будет вызван первым), запускаются только при «добровольном» завершении процесса. Например, при получении процессом сигнала обработчики выхода вызываться не будут. Для обработки таких ситуаций следует использовать специальные функции — обработчики сигналов (см. раздел «Сигналы» далее в этой главе).

Обработчики выхода регистрируются с помощью функции atexit(3C):

Функцией atexit(1) может быть зарегистрировано до 32 обработчиков.

На рис. 2.7 проиллюстрированы возможные варианты запуска и завершения программы, написанной на языке С.

Рис. 2.7. Запуск и завершение C-программы

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

Читайте также

Аварийное завершение

Аварийное завершение Любое завершение выполнения программы по причинам, отличным от достижения конца try-блока и «проваливания вниз» или выполнения оператора __leave, считается аварийным завершением. Результатом выполнения оператора __leave является переход в конец блока __try и

Завершение процесса

Завершение процесса Как это ни грустно, но любой процесс в конечном итоге должен завершиться. Когда процесс завершается, ядро должно освободить ресурсы, занятые процессом, и оповестить процесс, который является родительским для завершившегося, о том, что его порожденный

В завершение о планировщике

В завершение о планировщике Планировщик выполнения процессов является важной частью ядра, так как выполнение процессов (по крайней мере, для большинства из нас) — это основное использование компьютера. Тем не менее, удовлетворение всем требованиям, которые

Завершение процесса

Завершение процесса С завершением процесса дело обстоит достаточно просто, по крайней мере, в сравнении с тем, что происходит при завершении потока, как это и будет показано очень скоро. Процесс завершается, если программа выполняет вызов exit() или выполнение просто

Завершение потока

Завершение потока Как и в случае обсуждавшегося ранее завершения процесса, для потоков мы будем отчетливо различать случаи:• «естественного» завершения выполнения потока из кода самого потока;• завершения потока извне, из кода другого потока или по сигналу. Для этого

Завершение сеанса

Завершение сеанса В нижней части правого столбца меню Пуск располагаются кнопки, отвечающие за завершение сеанса работы Windows и выключение компьютера. В Windows Vista кнопка Питание в меню Пуск выполняет совершенно иную функцию, нежели в Windows XP: она не выключает компьютер, а

Завершение ассоциации

Завершение ассоциации В отличие от TCP, SCRIPT не имеет состояния, соответствующего частично закрытой ассоциации. Когда один узел закрывает ассоциацию, второй узел должен перестать отправлять новые данные. Получатель запроса на закрытие ассоциации отправляет те данные,

5.7. Нормальное завершение

5.7. Нормальное завершение На этом этапе соединение установлено, и все, что бы мы ни вводили на стороне клиента, отражается обратно.linux % tcpcli01 127.0.0.1 эту строку мы показывали раньшеhello, world наш вводhello, world отраженная сервером строкаgood byegood bye^D Ctrl+D — наш завершающий символ для

2.5. Завершение установки

2.5. Завершение установки После завершения копирования файлов на диск нужно разобраться еще с несколькими настройками. Во-первых, система должна знать, как вы ее будете загружать. Если Windows без разговоров прописывает загрузку в MBR (Master Boot Record, основная загрузочная запись),

10.6.1 Внезапное завершение

10.6.1 Внезапное завершение Каждая из сторон может запросить внезапное завершение (abrupt close) соединения. Это допустимо, когда приложение желает завершить соединение или когда TCP обнаруживает серьезную коммуникационную проблему, которую не может разрешить собственными

Завершение работы

Завершение работы Выключить компьютер можно двумя способами• Используя команду Завершение работы меню кнопки Пуск• Открывая окно Завершение работы программы нажатием кнопок ctrl+alt+del и нажимая кнопку Завершить работуWindows позволяет запретить выключение этими способами

Завершение работы

Завершение работы Выключить компьютер можно двумя способами — Используя команду Выключение меню кнопки Пуск- Открывая окно Диспетчер задач Windows нажатием кнопок Ctrl+Alt+Del и выбирая пункт меню Завершение работы | Выключение Windows позволяет запретить выключение этими

Завершение

Завершение Наконец-то, в этой главе мы узнали как работать с переменными (и литералами) различных типов. Как вы можете видеть, это не было слишком сложно. Фактически, в каком-то отношении большая часть кода выглядит даже еще проще, чем это было в более ранних программах.

В завершение

В завершение Тестированию, которое мы знаем и любим, приходит конец. Кого-то эта новость огорчит. Тем, чья карьера зависит от текущей схемы работы, придется намного сложнее. Так или иначе, разработка программного обеспечения фундаментально изменилась с приходом гибких

Завершение

Завершение Если все списки САС проанализированы, а переменная состояния маски причины не показывает, что все причины аннулирования проверены, то переменная состояния статуса сертификата принимает значение «не определен». Большинство приложений будет реагировать на

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *