Other Alias
timelocalОБЗОР
#include <time.h>
time_t timelocal(struct tm *tm);
time_t timegm(struct tm *tm);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
timelocal(), timegm(): _BSD_SOURCE || _SVID_SOURCE
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).Интерфейс | Атрибут | Значение |
timelocal(), timegm() | безвредность в нитях | безвредно (MT-Safe env locale) |
СООТВЕТСТВИЕ СТАНДАРТАМ
Данные функции являются нестандартными расширениями GNU, которые также присутствуют в BSD. Не используйте их; смотрите ЗАМЕЧАНИЯ.ЗАМЕЧАНИЯ
Функция timelocal() эквивалентна стандартной функции POSIX mktime(3). Нет ни одной причины когда-либо её использовать.Переносимым вариантом timegm() является установка переменной окружения TZ в UTC, вызов mktime(3) и восстановление значения TZ. Примерно так:
#include <time.h> #include <stdlib.h> time_t my_timegm(struct tm *tm) { time_t ret; char *tz; tz = getenv("TZ"); if (tz) tz = strdup(tz); setenv("TZ", "", 1); tzset(); ret = mktime(tm); if (tz) { setenv("TZ", tz, 1); free(tz); } else unsetenv("TZ"); tzset(); return ret; }