> From: "Serguei E. Leontiev" <leo@sai.msu.ru> > Date: Sun, 15 Feb 2015 06:02:13 +0000 (UTC) > > SL>>> По POSIX тот же localtime() безусловно вызывает tzset(). > SL>>> Фактически же оно в glibc работает иначе, не так, как описано в > SL>>> документации и это ошибка. > ??>> Предлагаешь всякий раз заглядывать в /etc/localtime? > VD> А в чём проблема, собственно, заглянуть? Файлец маленький, в > VD> одну страницу помещается. > >Каждый раз считывать - лишний системный вызов.
Так оно ж всё равно вызывается не просто так, а ради того, чтобы лог записать, хедер отослать или ещё какую штуку сдеалть, которая и сама по себе системные вызовы требует, причём, в отличие от считывания 1 страницы из кэша, занимает дорогие ресурсы вроде диска или сети.
>Однако, т.к. glibc уже давно библиотека практически одной системы >GNU/Linux, то есть же в GNU/Linux эффективные средства мониторинга >изменений файлов.
Это да. В других системах особенности поведения localtime() чётко описаны в документации, например;
The function localtime() uses tzset(3) to initialize time conversion information if tzset(3) has not already been called by the process.
>Как вариант, периодическое считывание по расписанию.
Авторы демонов этой возможностью почему-то неохотно пользуются...