ОБЗОР
#include <unistd.h>int daemon(int nochdir, int noclose);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
daemon(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
ОПИСАНИЕ
Функция daemon() необходима для того, чтобы отключить программу от управляющего терминала и запустить её в фоновом режиме подобно тому, как выполняются системные службы.Если аргумент nochdir равен нулю, то daemon() изменяет текущий рабочий каталог процесса на корневой («/»); в противном случае текущий рабочий каталог не изменяется.
Если аргумент noclose равен нулю, то daemon() перенаправляет стандартный поток ввода, вывода и ошибок в /dev/null; в противном случае данные файловые дескрипторы не изменяется.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Эта функция порождает новый процесс и, если fork(2) завершается без ошибок, родительский процесс вызывает _exit(2), чтобы дальнейшие ошибки воспринимались только дочерним процессом. В случае успешного выполнения daemon() возвращается ноль. Если возникла ошибка, то daemon() возвращает -1 и присваивает глобальной переменной errno одно из значений, указанных для fork(2) и setsid(2).АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).Интерфейс | Атрибут | Значение |
daemon() | безвредность в нитях | безвредно (MT-Safe) |