table of contents
_EXIT(2) | Руководство программиста Linux | _EXIT(2) |
ИМЯ¶
_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@perm.ru> 2003
2001-11-17 | Linux |