Какой процесс выполняется в UNIX, когда программа завершается из-за сбоя программного обеспечения? - PullRequest
0 голосов
/ 29 июня 2010

Эй, ребята, я новичок в UNIX, пытаюсь учить себя и наткнулся на этот вопрос практики в книге, которую я использую. Я предполагаю, что программа завершения просто вызывает функцию выхода, если ему передан неверный ввод. Пожалуйста, дайте мне знать, если я на правильном пути! Спасибо, ребята!

1 Ответ

1 голос
/ 29 июня 2010

Это один из способов завершения программы.Если вы наберете exit с ненулевым номером, программа будет "нормально завершена с ошибкой".Есть и другие способы.Если кто-то kill s процесс, он умрет ненормально.Если программа segfaults (обращается к адресу, который не сопоставлен с ней), она будет уничтожена с помощью SIGSEGV.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...