Как выйти из программы
Перейти к содержимому

Как выйти из программы

  • автор:

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

Функция, объявленная exit в , завершает программу C++. Значение, предоставленное в качестве аргумента exit , возвращается операционной системе в качестве возвращаемого кода программы или кода выхода. Принято, чтобы нулевым кодом возврата обозначалось, что программа завершена успешно. Константы EXIT_FAILURE можно использовать, а EXIT_SUCCESS также определенные в , чтобы указать успешность или сбой программы.

Функция abort

Функция abort , объявленная в стандартном формате, включает , завершает программу C++. Разница между exit и abort заключается в том, что exit обработка завершения среды выполнения C++ выполняется (вызывается глобальные деструкторы объектов). abort немедленно завершает программу. Функция abort проходит обычный процесс уничтожения для инициализированных глобальных статических объектов. Также осуществляется обход всей специальной обработки, которая была задана с помощью функции atexit .

Корпорация Майкрософт: по соображениям совместимости Windows реализация abort microsoft может разрешить выполнение кода завершения библиотеки DLL в определенных обстоятельствах. Дополнительные сведения см. в разделе abort .

Функция atexit

Используйте функцию atexit , чтобы указать действия, выполняемые до завершения программы. Перед выполнением функции выхода не инициализированы глобальные статические объекты, инициализированные перед вызовом atexit .

return оператор in main

Инструкция return позволяет указать возвращаемое значение из main . Оператор return в main первую очередь действует как любая другая return инструкция. Все автоматические переменные уничтожаются. main Затем вызывает возвращаемое exit значение в качестве параметра. Рассмотрим следующий пример:

// return_statement.cpp #include struct S < int value; >; int main() < S s< 3 >; exit( 3 ); // or return 3; > 

return Операторы exit , описанные в предыдущем примере, имеют аналогичное поведение. Как завершить программу, так и вернуть значение 3 операционной системе. Разница заключается в том, что exit не уничтожает автоматическую переменную s , а return оператор делает.

Как правило, C++ требует, чтобы функции, имеющие возвращаемые типы, отличные от void возвращаемого значения. Функция является исключением. Она main может завершиться без инструкции return . В этом случае он возвращает значение, зависящее от реализации, в вызывающий процесс. (По умолчанию MSVC возвращает значение 0.)

Уничтожение потоков и статических объектов

При вызове exit напрямую (или при вызове после оператора из main ), объекты потоков, связанные с текущим потоком return , уничтожаются. Затем статические объекты уничтожаются в обратном порядке их инициализации (после вызовов функций, указанных в , если таковые имеются atexit ). В следующем примере показано выполнение такого процесса инициализации и удаления.

Пример

В следующем примере статические объекты sd1 создаются и sd2 инициализированы перед записью main . После завершения работы этой программы с помощью инструкции return сначала sd2 уничтожается, а затем sd1 . Деструктор класса ShowData закрывает файлы, связанные с этими статическими объектами.

// using_exit_or_return1.cpp #include class ShowData < public: // Constructor opens a file. ShowData( const char *szDev ) < errno_t err; err = fopen_s(&OutputDev, szDev, "w" ); >// Destructor closes the file. ~ShowData() < fclose( OutputDev ); >// Disp function shows a string on the output device. void Disp( char *szData ) < fputs( szData, OutputDev ); >private: FILE *OutputDev; >; // Define a static object of type ShowData. The output device // selected is "CON" -- the standard output device. ShowData sd1 = "CON"; // Define another static object of type ShowData. The output // is directed to a file called "HELLO.DAT" ShowData sd2 = "hello.dat"; int main()

Другой способ написания этого кода заключается в объявлении ShowData объектов с блоком область, который неявно уничтожает их при выходе из область:

Завершение приложений на Mac

Если Вы редко используете приложение, можно завершить его по окончании работы, особенно если оно потребляет много энергии.

  • Чтобы завершить приложение, выберите «Название приложения» > «Завершить приложение» в строке меню. Например, выберите меню «Просмотр» > «Завершить Просмотр» (или нажмите сочетание клавиш Command‑Q).

Учтите, что, нажимая кнопку «Закрыть» в левом верхнем углу окна приложения, Вы закрываете окно приложения, однако само приложение остается открытым (маленькая точка под значком приложения в Dock означает, что приложение открыто).

Совет. Если при завершении приложения в нем открыты какие-либо окна, эти окна отобразятся при следующем открытии приложения. Чтобы закрывать окна приложений и не отображать их при следующем открытии приложений, выберите меню Apple

> «Системные настройки», в боковом меню нажмите «Рабочий стол и Dock» (возможно, потребуется прокрутить вниз), справа откройте «Окна», затем включите параметр «Закрывать окна при завершении приложения».

Как закрыть программу которая зависла, с примерами

Все программы написаны людьми, а значит они не идеальны и могут зависать. Как закрыть программу, которая зависла? Вообще, в Windows 7/10 разработчики на славу постарались. В этих операционных системах программы стали зависать намного реже и закрывать такие программы стало легче. В Windows XP приходилось перезагружать компьютер намного чаще из-за того, что программы зависали.

Давайте разберём все доступные методы как закрыть программу, которая зависла, с конкретными примерами и узнаем как избегать подобных проблем.

Как определить, что программа зависла?

Обычно программа перестаёт отвечать на действия пользователя, а курсор превращается в песочные часики. В этом случае в заголовке программы в скобках может быть написано «(Не отвечает)». Все попытки закрыть программу на «крестик» ничего не дают, либо крестик нажать не удаётся. Также надо понимать, что ресурсоёмкие операции требуют времени выполнения. Т.е., если вы чем-то тяжёлым «загрузили» весь компьютер, то программы могут вести себя как зависшие, особенно если комп слабый и старый. В этом случае нужно просто подождать, но не больше 5-10 минут.

Что не нужно делать, если программа зависла

Многие пользователи при этом делают массу не нужных действий, теряя своё время.

Во-первых, не стоит сразу тянуться к кнопке «Reset» или выключать компьютер. Хотя, это самый радикальный способ закрыть программу (и все остальные программы :)). Но вы что, каждый раз будете перезагружать компьютер? За этим занятием можно провести весь день и ничего не успеть! К тому же, несохранённые данные в других программах можно потерять. Во-вторых, не нужно пытаться запустить зависшую программу ещё раз. Помочь делу это никак не сможет, а вот усугубить проблему ещё как! И в-третьих, не стоит запускать другие программы. Этим вы только затормозите систему ещё больше.

Как закрыть программу, если она «висит»

Раз уж «крестиком» программу закрыть не удаётся, можно попробовать нажать «ALT + F4». Эта комбинация клавиш закрывает активную программу. Или нажать на значок программы в левом верхнем углу и выбрать «Закрыть» закрыть программу через пиктограммуЕщё безобидный способ как можно закрыть зависшую программу, это нажать правой кнопкой по программе в панели задач и выбрать там «Закрыть программу». закрыть программу через панель задач правой кнопкойЕсли это не помогает, переходим к самому ходовому способу – запускаем «Диспетчер задач» клавишами «Ctrl + Shift + Esc» или через «Ctrl + Alt + Del» и выбираем «Запустить Диспетчер задач» (если у вас возникли проблемы на этом шаге, то почитайте как включить диспетчер задач). Как закрыть программу в диспетчере задач Windows 7

  • В диспетчере задач на вкладке «Приложения» находим нашу программу и нажимаем по ней правой кнопкой мышки
  • В контекстном меню выбираем «Снять задачу» (или вместо меню нажимаем одноимённую кнопку). Если программа не закрылась сразу, то немного подождите, должно появиться окно подтверждения завершения приложения
  • Если и после подтверждения программа всё ещё «висит», тогда ещё раз нажимаем по ней правой кнопкой, но на этот раз выбираем «Перейти к процессу». Каждая запущенная программа имеет один или несколько процессов в памяти компьютера. Если закрыть соответствующий процесс, то и программа закроется.
  • После перехода на вкладку «Процессы» курсор уже должен стоять на процессе зависшей программы. Смело нажимаем по нему правой кнопкой и выбираем «Завершить процесс» или, чтобы наверняка, «Завершить дерево процессов». Программа должна почти сразу закрыться.

как закрыть процесс программы в диспетчере задач

Что делать, если программы нет на вкладке «Приложения»

Может быть и такое, что вызвав диспетчер задач, нашей программы нет в списке запущенных программ. Тогда прийдётся перейти на вкладку «Процессы» и найти самостоятельно нужный процесс. Для этого можно кликнуть на заголовке столбца «ЦП» (загрузка процессора), тем самым отсортировав все процессы по степени загрузки процессора, и посмотреть процесс, который больше всего грузит процессор, и завершить его.

Но не всегда зависшая программа будет грузить процессор, тогда нужно отсортировать процессы по имени и поискать похожий на название программы. Более точно определить искомый процесс можно узнав имя запускаемого файла нашей программы. Для этого нажимаем правой кнопкой по ярлыку программы (будь-то на рабочем столе или в меню «Пуск») и выбираем «Свойства».

как узнать имя процесса зависшей программы

В строчке «Объект» смотрим имя запускаемого файла, которое заканчивается на «.exe». Это и будет имя процесса, который нужно найти в диспетчере задач и завершить.

Как закрыть программу другим способом?

Ещё можно закрыть программу с помощью сторонних программ, например Process Explorer от компании Sysinternals. Это лёгкая и бесплатная программка не требующая устновки. Просто скачайте и запустите «procexp.exe» из архива.

В окне программы найдите процесс зависшей программы и по правой клавише мыши выберите «Kill Process» или «Kill Process Tree», или просто кнопками «Del» и «Shift + Del» соответственно. Также существует и другая альтернатива диспетчеру задач.

Есть ещё способ?

Для самых продвинутых есть ещё способ как закрыть зависшую программу из командной строки. Для этого вызываем окно «Выполнить» либо через меню «Пуск -> Выполнить», либо горячими клавишами «Win + R» и пишем там «cmd». В открывшемся чёрном окне пишем:

«taskkill /f /im имя_процесса.exe /t»

где «имя_процесса.exe» — это имя процесса зависшей программы, например «explorer.exe»

При успешном выполнении будет написано соответствующее сообщение.

В качестве некоего экзотического способа есть программа Kerish Doctor 2019, у неё есть уникальная функция Kerish Deblocker, обязательно прочитайте мою статью.

Почему программы зависают?

Вместо того чтобы заниматься вопросом как закрыть программы, лучше чтобы они не зависали. Вот основные причины, почему программы зависают:

  • Ошибка в коде программы. Банальные ошибки программистов, недочёты, конфликты с другими программами. Попробуйте обновиться на сайте производителя ПО
  • Захламленная операционная система. Нередко программы начинают глючить и зависать на неухоженной операционной системе. В этом случае надо либо переустановить, либо оптимизировать операционную систему
  • Конфликт оборудования или драйверов. При наличии конфликтов между оборудованием, драйверами или программами между собой могут быть зависания не только программ, но и всей системы
  • Не подходящая версия Windows. Если программа не предназначена для, например, Windows 7, а вы её там запускаете, то могут быть глюки и конфликты. В этом случае попробуйте обновиться или в свойствах ярлыка программы или запускаемого файла на вкладке «Совместимость» выбрать другую операционную систему.
  • Ошибки на жестком диске. При ошибках файловой системы или при наличии сбойных секторов могут быть временные или постоянные подвисания. Проверьте свой жесткий диск на ошибки.
  • Недостаточно оперативной памяти. Это видно в диспетчере задач, если вся память постоянно занята. Можно попробовать увеличить размер файла подкачки, но лучше добавить оперативной памяти или перейти на другую версию Windows и/или программы.
  • Взломанные программы. В случае использования «крякнутых» программ также могут быть проблемы. Совет: либо используйте лицензионную версию, либо крякнутую, но из другого источника ��
  • Вирусы. Конечно же и они могут влиять на работу всего компьютера. Проверьте компьютер на вирусы с помощью бесплатного антивируса DrWeb Cureit!
  • Ещё много других причин, всех не перечислить.

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

Десерт на сегодня, посмотрите как зачётно поёт попугай ��

Как закрыть программу принудительно, если она зависла и не реагирует на нажатия.

sposobyi-zakryit-programmu

Доброго времени!

В ряде случаев даже самые «стабильные» и надежные программы могут перестать отзываться на какие-либо нажатия мышки/клавиатуры (т.е. попросту зависнуть).

Для решения вопроса, можно, конечно, перезагрузить ПК/ноутбук — но далеко не всегда это удобно (часть данных в др. ПО будет сброшена и не сохранится. ) .

Логично, что лучше всего закрыть только эту конкретно-зависшую программу. Всем известное сочетание ALT+F4 — далеко не всегда решает проблему, и, собственно, поэтому набросал небольшую заметку с несколькими способами принудительной ликвидации процесса.

�� Кстати!

Если ПК/ноутбук вообще не реагирует ни на одну из кнопок клавиатуры — то скорее всего зависла не только отдельно-взятая программа, но и в целом система.

Если так, то для перезагрузки/выключения устройства — зажмите кнопку питания (Power) на 4-5 сек. (разумеется, все несохраненные данные будут утеряны) .

Способы закрыть не отвечающую программу

�� Первый

Итак, самый очевидный и простой вариант — просто кликнуть правой кнопкой мышки по значку зависшей программы на панели задач Windows. После, во всплывшем окне достаточно будет выбрать вариант «закрыть окно» .

Закрыть окно

�� Второй

Если зависло полно-экранное приложение и до панели задач вы просто не можете добраться, попробуйте сочетания:

  • WIN , или WIN+TAB , или ALT+TAB , или ALT+Enter — чтобы свернуть окно;
  • ALT+F4 , или ESC , или ALT+Q — для закрытия (выхода) из программы.

ALT+Q / клавиатура

Перечисленные «горячие» сочетания клавиш работают с подавляющем большинством ПО для Windows.

�� Третий

Нажмите сочетание клавиш Ctrl+Shift+Esc (или Ctrl+Alt+Del) для вызова диспетчер задач. Далее во вкладке процессы найдите зависшую программу (процесс), кликните по ней правой кнопкой мыши и в появившемся выберите «Снять задачу» . Через 3-5 сек. программа должна быть закрыта.

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Кстати, если рабочий стол после этого стал отображаться «как-то не так» (или вообще не видно) — перезапустите процесс «Проводник» (или «Explorer» на англ.).

Примечание: также проводник можно перезапустить из командной строки, введя taskkill /F /IM explorer.exe & start explorer и нажав Enter.

�� Четвертый

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

Как это делается:

  1. сначала нужно открыть �� командную строку;
  2. после ввести tasklist и нажать Enter;
  3. на экране появится список всех процессов (следует уточнить имя процесса/программы, которую нужно закрыть);
  4. после ввести taskkill /IM chrome.exe /f и нажать Enter (вместо «chrome.exe» — указывается имя нужного процесса) .

Убиваем процесс через командную строку

Убиваем процесс через командную строку

�� Пятый

Если вышеприведенные варианты не увенчались успехом, можно прибегнуть к утилите Process Hacker (ссылка на SourceForge). Это бесплатное ПО, которое покажет вам все запущенные процессы, их приоритеты, занимаемую память, нагрузку и пр.

Чтобы ликвидировать (закрыть) в нем любую из запущенных программ — нужно просто ее выбрать в списке, затем нажать ПКМ по ее имени и в появившемся окне выбрать «Terminate tree» (см. пример ниже ��).

Process Hacker 2 — закрыть дерево процессов

Process Hacker 2 — закрыть дерево процессов

Стоит отметить, что Process Hacker закроет сразу всё дерево процессов, связанных с этой программой (чего не делают многие др. программы. ).

PS

Если у вас часто начала зависать какая-либо программа (еще хуже программы) — обратите внимание на:

  1. версию ПО (нежелательно использовать различные бета-версии). Проверьте, совместима ли версия ПО с вашей ОС (в помощь: какая версия Windows установлена на моем компьютере);
  2. обновите драйвера (желательно с офиц. сайта);
  3. проверьте жесткий диск (если он начал «сыпаться» — подвисания будут идти постоянно);
  4. прогоните систему с помощью спец. «одноразовых» антивирусных продуктов;
  5. возможно, вашему приложению не хватает ОЗУ (посмотрите при работе ПО — сколько памяти занято в диспетчере задач).

Кроме этого, рекомендую ознакомиться с тематическими инструкциями (ссылки ниже).

�� В помощь!

1) Вылетает или зависает игра. Что делать?

2) Зависает ноутбук: что делать? Диагностика и устранение причин зависания

3) Ошибка: Kernel-Power код 41, категория 63. Компьютер перезагружается или зависает

На этом пока всё.

Первая публикация: 24.04.2020

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

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