FreeSource : Статьи/КраткоОбоВсём/Clang/part2/part4

2.4 Функции/переменные работы со временем и временными интервалами

alarm (SVr4, SVID, POSIX, X/OPEN, BSD 4.3) <unistd.h>
unsigned int alarm(unsigned int seconds);
Настраивающая таймер на подачу сигнала ALARM.

asctime, ctime (POSIX) <time.h>
char *asctime(const struct tm *timeptr);
char *ctime(const time_t *timep);
Преобразует время <timep>, <timeptr> в строку в формате «Wed Jun 30 21:49:08 1993».

clock_gettime, clock_getres, clock_settime (POSIX) <time.h>
int clock_getres(clockid_t clock_id, struct timespec *res);
int clock_gettime(clockid_t clock_id, struct timespec *tp);
int clock_settime(clockid_t clock_id, const struct timespec *tp);
Функции манипуляции системными часами <clock_id>. В соответствии со стандартом POSIX должны поддерживаться часы: CLOCK_MONOTONIC, CLOCK_MONOTONIC_HR, CLOCK_REALTIME и CLOCK_REALTIME_HR.

daylight (POSIX) <time.h>
extern int daylight;
Переход на летнее время.

gmtime, localtime (POSIX) <time.h>
struct tm *gmtime(const time_t *timep);
struct tm *localtime(const time_t *timep);
Преобразуют календарное время <timep> во время по Гринвичу и локальное;

mktime (POSIX) <time.h>
time_t mktime(struct tm *timeptr);
Преобразует структуру локального представления <timeptr> времени в структуру календарного представления.

setitimer, getitimer (POSIX.1–2001) <sys/time.h>
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
int getitimer(int which, struct itimerval *value);
Получить и установить значение value интервального таймера <which>. Старое значение таймера сохраняется в <ovalue>. Типы таймеров <which>:

strftime (ANSI) <time.h>
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
Форматирует время <tm> в соответствии с указанным форматом <format> и помещает результат в символьный массив <s> размером <max>.

time (POSIX) <time.h>
time_t time(time_t *t);
Возвращает/устанавливает текущее время <t>

timer_create (POSIX) <time.h, signal.h>
int timer_create(clockid_t clockid, struct sigevent *restrict evp, timer_t *restrict timerid);
Создание таймера используя часы <clockid> (CLOCK_REALTIME, CLOCK_MONOTONIC) в соответствии со структурой уведомления <evp>. В результате успешного создания таймера возвращается идентификатор <timerid>.

timer_delete (POSIX) <time.h>
int timer_delete(timer_t timerid);
Удаление таймера ранее созданного функцией timer_create().

timer_gettime (POSIX) <time.h>
int timer_gettime(timer_t timerid, struct itimerspec *value);
Получение значения таймера, созданного функцией timer_create(), в <value>.

timer_settime (POSIX) <time.h>
//int timer_settime(timer_t timerid, int flags, const struct itimerspec *restrict value, struct itimerspec *restrict ovalue);
Установка таймера, созданного функцией timer_create(), в значение <value>, предварительно сохранив предыдущее значение в <ovalue>.

times (POSIX) <sys/times.h>
clock_t times(struct tms *buf);
Возвращает текущие состояние счетчика тиков, а также информации о времени выполнения процесса и его порожденных процессов в <buf>.

timezone (POSIX) <time.h>
long int timezone;
Содержит разницу, в секундах, между локальным временем и по Гринвичу.

tzname (POSIX) <time.h>
extern char *tzname[2];
Имя текущей временной зоны.

sleep, usleep, nanosleep (POSIX) <unistd.h, time.h>
unsigned int sleep(unsigned int seconds);
void usleep(unsigned long usec);
int nanosleep(const struct timespec *req, struct timespec *rem);
Функция задаёт интервал паузы: seconds – секунды, usec – микросекунды и req – наносекундах. В rem помещается реально прошедшее время.