Other Alias
_Exit
ОБЗОР
#include <unistd.h>
void _exit(int status);
#include <stdlib.h>
void _Exit(int status);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
_Exit():
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;или cc -std=c99
ОПИСАНИЕ
Функция _exit() завершает "немедленно" завершает вызывающий процесс. Все
дескрипторы файлов, принадлежащие процессу, закрываются; все его дочерние
процессы начинают управляться процессом 1 (init), а родительскому
процессу посылается сигнал SIGCHLD.
Значение status возвращается родительскому процессу как код завершаемого процесса; он может быть получен с помощью одной из функций семейства wait(2).
Функция _Exit() эквивалентна _exit().
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Эти функции не выполняют возврат.
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. Функция _Exit() была
представлена в C99.
ЗАМЕЧАНИЯ
Обсуждение эффектов при завершении работы, передачу кода выхода,
зомби-процессы, сигналы и т. п., смотрите в exit(3).
Функция _exit() подобна exit(3), но не вызывает никаких функций, зарегистрированных с помощью atexit(3) или on_exit(3). Открытые потоки посредством stdio(3) не сбрасываются. С другой стороны, _exit() закрывает открытые дескрипторы файлов, а это может привести к неопределенной задержке, так как происходит ожидание завершения вывода данных. Если задержка нежелательна, то может быть полезным перед вызовом _exit() вызывать функцию типа tcflush(3). Будет ли отмена ожидания ввод-вывода, а также какие именно ожидающие операции ввода-вывода будут завершены при вызове _exit, зависит от реализации.