Scroll to navigation

_EXIT(2) Руководство программиста Linux _EXIT(2)

ИМЯ

_exit, _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().

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Эти функции не выполняют возврат.

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, POSIX.1-2001, 4.3BSD. Функция _Exit() была представлена в C99.

ЗАМЕЧАНИЯ

Обсуждение эффектов при завершении работы, передачу кода выхода, зомби-процессы, сигналы и т. п., смотрите в exit(3).

Функция _exit() подобна exit(3), но не вызывает никаких функций, зарегистрированных с помощью atexit(3) или on_exit(3). Будет ли выполняться сброс стандартных буферов ввода-вывода и удаление временных файлов, созданных с помощью tmpfile(3), зависит от реализации. С другой стороны, _exit() закрывает открытые дескрипторы файлов, а это может привести к неопределенной задержке, так происходит ожидание завершения вывода данных. Если задержка нежелательна, то может быть полезным перед вызовом _exit() вызывать функции типа tcflush(3). Будет ли отменён ввод-вывод, а также какие именно ожидающие операции ввода-вывода будут завершены при вызове _exit, зависит от реализации.

В glibc до версии 2.3, обёрточная функция _exit() вызывала системный вызов ядра с тем же именем. Начиная с glibc 2.3, обёрточная функция вызывает exit_group(2), чтобы завершить все нити процесса.

СМОТРИТЕ ТАКЖЕ

execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), waitpid(2), atexit(3), exit(3), on_exit(3), termios(3)

2010-09-20 Linux