on_exit -
регистрирует
функцию
для вызова
в случае
нормального
завершения
процесса
Standard C library (
libc,
-lc)
#include <stdlib.h>
int on_exit(void (*function)(int, void *), void *arg);
on_exit():
начиная с glibc 2.19:
_DEFAULT_SOURCE
в glibc 2.19 и старее:
_BSD_SOURCE || _SVID_SOURCE
Функция
on_exit()
регистрирует
указанную
function для
вызова в
случае
нормального
завершения
процесса с
помощью
exit(3)
или при
выходе из
функции
main().
Функции
function
передаётся
аргумент
состояния,
указанный
в
последнем
вызове
exit(3), а
также
аргумент
arg
из
on_exit().
Одна
функция
может быть
зарегистрирована
несколько
раз: она
вызывается
один раз
для каждой
регистрации.
Когда
дочерний
процесс
создаётся
через
fork(2), он
наследует
копии
регистраций
родителя.
При
успешном
выполнении
одной из
функций
exec(3)
все
регистрации
снимаются.
Функция
on_exit()
при
успешном
выполнении
возвращает
0, в
противном
случае —
ненулевое
значение.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
on_exit() |
Безвредность
в нитях |
MT-Safe |
Эта
функция
впервые
появилась
в SunOS 4, но также
она
присутствует
в glibc. В Solaris (SunOS 5) её
уже нет.
Избегайте
этой
функции и
используйте
вместо нее
стандартную
atexit(3).
К моменту
выполнения
function стек
переменных
(
auto) уже
может
пропасть
из области
видимости.
Поэтому
arg
не должен
быть
указателем
на
переменную
в стеке;
однако он
может быть
указателем
на
переменную
в куче или
глобальную
переменную.
_exit(2),
atexit(3),
exit(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Konstantin Shvaykovskiy
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]