2017-01-24 6 views
-1

Если я использую fork(), чтобы создать дочерний процесс, будет ли процесс child автоматически завершаться после завершения родительского процесса? Или это должно быть запрограммировано?В C, если родительский процесс завершается, то дочерний процесс будет автоматически завершен?

+2

Почему бы вам не проверить его? :) – Alexander

+0

@ Александр Я новичок в программировании на С и еще не имею навыков программирования таким образом. Это просто вопрос, о котором мне стало интересно после прочтения этой функции. :) –

+3

Этот вопрос не имеет ничего общего с C; речь идет о модели процесса в операционной системе. –

ответ

6

Это не вопрос, вопрос О/S.

В Windows процесс будет продолжаться до тех пор, пока он не наберет ExitProcess или когда он выполнил достаточно CPU RET, что в стеке вызовов ничего не осталось.

В Unix процесс будет продолжен и запущен как подпроцесс init.

На обоих устройствах O/S пользователь с достаточными разрешениями может убить процесс.

Резьбы, с другой стороны, представляют собой другое дело - они прекратятся, когда процесс завершится.