ctime(), ctime_r()

Преобразовать системное время в локальное

Прототип:

#include <time.h>
char * ctime( const time_t *timer );
char * ctime_r( const time_t *timer,
char *buf );

Аргументы:

timer
Указатель на time_t объект, содержащий время, которое необходимо преобразовать в строку.
buf
(только для ctime_r()) Буфер, в котором ctime_r() может хранить итоговую строку. Этот буфер должен быть достаточно большим и содержать не менее 26 символов.

Библиотека:

libc

Описание:

Функции ctime() и ctime_r() преобразовывают системное время, указанное в timer в локальное время и форматируют его в строку, содержащую ровно 26 символов, например:

Tue May 7 10:40:27 2002\n\0

Эта функция: Эквивалентно вызову:
ctime() asctime( localtime ( timer ) );
ctime_r() asctime_r( localtime ( timer ), buf )


Note: Функция ctime() помещает итоговую строку в статический буфер, который переиспользуется каждый раз, когда вызываются функции ctime() или asctime(). Вызовы gmtime() или localtime() могут также изменить данные в этом статическом буфере.

Результирующая строка функции ctime_r() содержится в буфере buf.


Все поля имеют одинаковую длину. Символ новой строки '\n' и символ NUL '\0' занимают две последние позиции строки.

Каждый раз, когда вызывается функция ctime() или ctime_r(), также вызывается функция tzset().

Системное время обычно получается с помощью функции time(). Это т.н. время Coordinated Universal Time (UTC) (также известное как Greenwich Mean Time (GMT)).

Обычно время на компьютере устанавливается с помощью утилиты date, чтобы получить время UTC, а затем используется переменная окружения TZ или строка конфигурации _CS_TIMEZONE для установки местного часового пояса.

Возвращаемое значение:

Указатель на строку, содержащую отформатированное местное время, или NULL в случае возникновения ошибки.

Классификация:

ctime() — ANSI, POSIX 1003.1; ctime_r() — POSIX 1003.1 Thread-Safe Functions

ctime()

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Нет

ctime_r()

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Предостережения:

Функции asctime() и ctime() помещают результат в статический буфер, который переиспользуется при каждом вызове asctime() или ctime().

Тематические ссылки:

time_t, asctime(), asctime_r(), clock(), difftime(), gmtime(), localtime(), localtime_r(), mktime(), strftime(), time(), tzset()




Предыдущий раздел: Описание API системной библиотеки