Manpages

ИМЯ

_exit,_Exit − завершает текущий процесс

ОБЗОР

#include <unistd.h>

void _exit(int status);

#include <stdlib.h>

void _Exit(int status);

ОПИСАНИЕ

Функция _exit "немедленно" завершает вызвавший её процесс. Любые открытые файловые дескрипторы, принадлежащие данному процессу, закрываются; любые потомки данного процесса наследуются процессом init, который имеет идентификатор (номер) 1; а родительскому процессу, посылается сигнал SIGCHLD.

Значение status возвращается родительскому процессу как код завершения процесса, и может быть затем получено при помощи вызова одной из функций семейства wait.

Функция _Exit эквивалента функции _exit.

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

Эти функции ничего не возвращают.

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

SVr4, SVID, POSIX, X/OPEN, BSD 4.3. Функция _Exit() была введена по C99.

ЗАМЕЧАНИЯ

Информацию о действиях, выполняемых exit, о передаче кода завершения, о процессах зомби и об посылке сигналов и т.д. смотрите в exit(3).

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

СМОТРИ ТАКЖЕ

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

ПЕРЕВОД

Перевёл с английского Виктор Вислобоков <corochoone [AT] perm.ru> 2003