Man pages на русском

         

EXIT(2)


НАЗВАНИЕ

exit, _exit - уничтожение вызвавшего процесса

СИНТАКСИС

void exit (status) int status;

void _exit (status) int status;

ОПИСАНИЕ

Системный вызов exit терминирует обратившийся к нему процесс, при этом последовательно выполняются следующие действия:

  • В вызвавшем процессе закрываются все дескрипторы открытых файлов.
  • Если родительский процесс находится в состоянии вызова wait, то системный вызов wait завершается, выдавая родительскому процессу в качестве результата идентификатор терминировавшегося процесса и младшие 8 бит кода его завершения [см. ].
  • Если родительский процесс не находится в состоянии вызова wait, то процесс, вызвавший exit, переходит в состояние зомби. Это такое состояние, когда процесс занимает только элемент в таблице процессов и не занимает памяти ни в адресном пространстве пользователя, ни в адресном пространстве ядра. Элемент таблицы процессов, занятый зомби-процессом, содержит информацию о времени, затраченном процессом. Эта информация необходима для вызова times [см. <sys/proc.h>].
  • У всех существующих потомков терминировавшихся процессов, а также у зомби-процессов идентификатор родительского процесса устанавливается равным 1. Таким образом, все эти процессы наследуются инициализационным процессом [см. ].

    Все присоединенные разделяемые сегменты памяти отсоединяются и в связанных с ними структурах данных значения полей shm_nattach уменьшаются на 1.

    В каждом семафоре, для которого у процесса имеется значение semadj, это значение прибавляется к полю semval.

    Если процесс удерживал в памяти сегмент команд, данных или всего себя целиком, то удержание отменяется [см. ].

    Если включен режим сбора статистической информации, то в файл сбора статистики помещается запись с информацией о процессе [см. ].

    Если идентификатор процесса, идентификатор группы терминала и идентификатор группы процессов у процесса, вызвавшего exit, совпадают, то всем процессам с тем же идентификатором группы процессов посылается сигнал SIGHUP.

    Родительскому процессу посылается сигнал SIGCLD (завершение порожденного процесса).

    C-функция exit перед уничтожением процесса может выполнять некоторые терминирующие действия, например, завершение профилирования. Функция _exit немедленно уничтожает вызвавший процесс.

    СМ. ТАКЖЕ

    , , , , , , .

    ПРЕДОСТЕРЕЖЕНИЯ

    См. ПРЕДОСТЕРЕЖЕНИЯ в .

    ДИАГНОСТИКА

    Диагностика отсутствует, так как из системного вызова exit управление никогда не возвращается.



    Содержание раздела