.\" -*- coding: UTF-8 -*- .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 19:49:27 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Fri Apr 26 12:38:55 MET DST 1996 by Martin Schulze (joey@linux.de) .\" Modified 2001-11-13, aeb .\" Modified 2001-12-13, joey, aeb .\" Modified 2004-11-16, mtk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CTIME 3 "21 декабря 2020 г." "" "Руководство программиста Linux" .SH ИМЯ asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r \- преобразует дату и время в раздельном представлении или ASCII .SH СИНТАКСИС .nf \fB#include \fP .PP \fBchar *asctime(const struct tm *\fP\fItm\fP\fB);\fP \fBchar *asctime_r(const struct tm *\fP\fItm\fP\fB, char *\fP\fIbuf\fP\fB);\fP .PP \fBchar *ctime(const time_t *\fP\fItimep\fP\fB);\fP \fBchar *ctime_r(const time_t *\fP\fItimep\fP\fB, char *\fP\fIbuf\fP\fB);\fP .PP \fBstruct tm *gmtime(const time_t *\fP\fItimep\fP\fB);\fP \fBstruct tm *gmtime_r(const time_t *\fP\fItimep\fP\fB, struct tm *\fP\fIresult\fP\fB);\fP .PP \fBstruct tm *localtime(const time_t *\fP\fItimep\fP\fB);\fP \fBstruct tm *localtime_r(const time_t *\fP\fItimep\fP\fB, struct tm *\fP\fIresult\fP\fB);\fP .PP \fBtime_t mktime(struct tm *\fP\fItm\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .ad l .PP \fBasctime_r\fP(), \fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP(): .RS _POSIX_C_SOURCE || /* версии glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .RE .ad .SH ОПИСАНИЕ The \fBctime\fP(), \fBgmtime\fP(), and \fBlocaltime\fP() functions all take an argument of data type \fItime_t\fP, which represents calendar time. When interpreted as an absolute time value, it represents the number of seconds elapsed since the Epoch, 1970\-01\-01 00:00:00 +0000 (UTC). .PP Функции \fBasctime\fP() и \fBmktime\fP() используют в качестве аргумента время, которое разделено на компоненты: год, месяц, день и т. п. .PP Время в виде компонент хранится в структуре \fItm\fP, которая определена в файле \fI\fP следующим образом: .PP .in +4n .EX struct tm { int tm_sec; /* секунды (0\-60) */ int tm_min; /* минуты (0\-59) */ int tm_hour; /* часы (0\-23) */ int tm_mday; /* день месяца (1\-31) */ int tm_mon; /* месяц (0\-11) */ int tm_year; /* год \- 1900 */ int tm_wday; /* день недели (0\-6, воскресенье = 0) */ int tm_yday; /* день года (0\-365, 1 января = 0) */ int tm_isdst; /* летнее время */ }; .EE .in .PP Члены структуры \fItm\fP: .TP 10 \fItm_sec\fP Количество секунд до целой минуты, обычно в диапазоне от 0 до 59; но для того, чтобы установить високосную секунду, используются числа до 60. .TP \fItm_min\fP Количество минут до целого часа, от 0 до 59. .TP \fItm_hour\fP Количество часов прошедших после полуночи, от 0 до 23. .TP \fItm_mday\fP День месяца, от 1 до 31. .TP \fItm_mon\fP Количество месяцев, прошедших с января, от 0 до 11. .TP \fItm_year\fP Количество лет, прошедших с 1900 года. .TP \fItm_wday\fP Количество дней, прошедших с воскресенья, от 0 до 6. .TP \fItm_yday\fP Количество дней, прошедших с 1 января, от 0 до 365. .TP \fItm_isdst\fP Этот флаг показывает, учтено ли летнее время в описываемой дате. Значение флага положительно, если летнее время учитывается, 0, если нет, и отрицательно, если информация недоступна. .PP Вызов \fBctime(\fP\fIt\fP\fB)\fP эквивалентен \fBasctime(localtime(\fP\fIt\fP\fB))\fP. Он преобразует календарное время \fIt\fP в строку (с null в конце) вида .PP .in +4n .EX "Wed Jun 30 21:49:08 1993\en" .EE .in .PP Аббревиатуры дней недели: «Sun», «Mon», «Tue», «Wed», «Thu», «Fri» и «Sat». Аббревиатуры месяцев: «Jan», «Feb», «Mar», «Apr», «May», «Jun», «Jul», «Aug», «Sep», «Oct», «Nov» и «Dec». Возвращаемое значение указывает на статически размещённую строку, которая может быть перезаписана последующими вызовами любых функций даты и времени. Функция также устанавливает в внешних переменных \fItzname\fP, \fItimezone\fP и \fIdaylight\fP (смотрите \fBtzset\fP(3)) текущий часовой пояс. Реентерабельная версия \fBctime_r\fP() делает то же самое, но заносит строку в буфер, предоставляемый пользователем. Длина буфера должна быть не менее 26 байт. Ей не нужно устанавливать \fItzname\fP, \fItimezone\fP и \fIdaylight\fP. .PP Функция \fBgmtime\fP() преобразует календарное время \fItimep\fP в компонентное представление, выраженное в виде всеобщего скоординированного времени (UTC). Она может вернуть значение NULL, если год не может быть описан типом integer. Возвращаемое значение указывает на статически выделенную структуру, содержимое которой может быть перезаписано последующими вызовами любых функций, работающих с датой и временем. Функция \fBgmtime_r\fP() делает то же самое, но помещает данные в структуру, предоставленную пользователем. .PP Функция \fBlocaltime\fP() преобразует календарное время \fItimep\fP в компонентное представление, выраженное относительно часового пояса, заданного пользователем. Функция работает так, как\-будто она вызывает \fBtzset\fP(3), и устанавливает внешние переменные: \fItzname\fP в значение текущего часового пояса, \fItimezone\fP в значение разницы в секундах между всеобщим скоординированным временем (UTC) и локальным стандартом времени, и \fIdaylight\fP в ненулевое значение, если действуют стандартные правила летнего времени. Возвращаемое значение указывает на статически выделенную структуру, содержимое которой может быть перезаписано последующими вызовами любых функций, работающих с датой и временем. Функция \fBlocaltime_r\fP() делает то же самое, но помещает данные в структуру, предоставленную пользователем. Она не нуждается в установке \fItzname\fP, \fItimezone\fP и \fIdaylight\fP. .PP Функция \fBasctime\fP() преобразует компонентное значение времени \fItm\fP в строку (с null в конце) того же формата, что и функция \fBctime\fP(). Возвращаемое значение указывает на статическую строку, которая может быть перезаписана последовательностью вызовов любых функций даты и времени. Функция \fBasctime_r\fP() делает то же самое, но заносит строку в буфер, предоставленный пользователем. Длина буфера должна быть не менее 26 байт. .PP Функция \fBmktime\fP() преобразует компонентное структурированное значение локального времени в календарное представление. Функция игнорирует содержимое полей структуры \fItm_wday\fP и \fItm_yday\fP, заданные вызывающим. Значение, указанное в поле \fItm_isdst\fP, информирует \fBmktime\fP() о действии летнего время (DST) в времени в структуре \fItm\fP: положительно значение показывает, что действует; 0 означает, что не действует и отрицательное значение означает, что \fBmktime\fP() должна попытаться определить самостоятельно, действует ли летнее время (используя информацию о часовом поясе и базы данных системы). .PP Функция \fBmktime\fP() изменяет поля структуры \fItm\fP следующим образом: в \fItm_wday\fP и \fItm_yday\fP записываются значения, определённые на основе содержимого других полей; если члены структуры вне своих допустимых интервалов, то они будут нормализованы (так, например, 40 октября превращается в 9 ноября); в \fItm_isdst\fP записывается положительное значение или 0, соответственно, для указания действия летнего времени (независимо от его начального значения). Вызов \fBmktime\fP() также присваивает внешней переменной \fItzname\fP значение текущего часового пояса. .PP Если компонентное значение времени не может быть представлено как календарное (число секунд с начала эпохи), то \fBmktime\fP() возвращает значение \fI(time_t)\ \-1\fP и не изменяет значения полей структуры компонентного значения времени. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении функции \fBgmtime\fP() и \fBlocaltime\fP() возвращают указатель на \fIstruct\ tm\fP. .PP При успешном выполнении функции \fBgmtime_r\fP() и \fBlocaltime_r\fP() возвращают адрес структуры, на которую указывает \fIresult\fP. .PP При успешном выполнении функции \fBasctime\fP() и \fBctime\fP() возвращают указатель на строку. .PP При успешном выполнении функции \fBasctime_r\fP() и \fBctime_r\fP() возвращают указатель на строку, на которую указывает \fIbuf\fP. .PP При успешном выполнении функция \fBmktime\fP() возвращает календарное время (секунды с начала эпохи), выраженное значением с типом \fItime_t\fP. .PP При ошибке функция \fBmktime\fP() возвращает значение \fI(time_t)\ \-1\fP. Остальные функции при ошибке возвращают NULL. При ошибке в \fIerrno\fP записывается причина ошибки. .SH ОШИБКИ .TP \fBEOVERFLOW\fP Результат не может быть представлен. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .ad l .TS allbox; lbw14 lb lbw31 l l l. Интерфейс Атрибут Значение T{ \fBasctime\fP() T} Безвредность в нитях MT\-Unsafe race:asctime locale T{ \fBasctime_r\fP() T} Безвредность в нитях MT\-Safe locale T{ \fBctime\fP() T} Безвредность в нитях T{ MT\-Unsafe race:tmbuf .br race:asctime env locale T} T{ \fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP(), \fBmktime\fP() T} Безвредность в нитях MT\-Safe env locale T{ \fBgmtime\fP(), \fBlocaltime\fP() T} Безвредность в нитях MT\-Unsafe race:tmbuf env locale .TE .ad .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" POSIX.1\-2001. В C89 и C99 определены функции \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP() и \fBmktime\fP(). В POSIX.1\-2008 функции \fBasctime\fP(), \fBasctime_r\fP(), \fBctime\fP() и \fBctime_r\fP() помечены как устаревшие. Вместо них рекомендуется использовать \fBstrftime\fP(3). .SH ЗАМЕЧАНИЯ The four functions \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), and \fBlocaltime\fP() return a pointer to static data and hence are not thread\-safe. The thread\-safe versions, \fBasctime_r\fP(), \fBctime_r\fP(), \fBgmtime_r\fP(), and \fBlocaltime_r\fP(), are specified by SUSv2. .PP В POSIX.1\-2001 сказано: «Функции \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP() и \fBlocaltime\fP() должны возвращать значения в одном из двух статических объектов: структуре компонентного значения времени и массиве типа \fIchar\fP. Выполнение любой функции может перезаписать данные, возвращённые ранее любой другой функцией в любом из этих объектов.» Это может происходить в реализации glibc. .PP Во многих реализациях, включая glibc, 0 в \fItm_mday\fP означает последний день предыдущего месяца. .PP Структура \fIstruct tm\fP версии glibc имеет дополнительные поля .PP .in +4n .EX const char *tm_zone; /* аббревиатура часового пояса */ .EE .in .PP определяемые в случае, если макрос \fB_BSD_SOURCE\fP был определён до включения \fI\fP. Это расширение BSD, существует в 4.3BSD\-Reno. .PP .\" See http://thread.gmane.org/gmane.comp.time.tz/2034/ According to POSIX.1\-2001, \fBlocaltime\fP() is required to behave as though \fBtzset\fP(3) was called, while \fBlocaltime_r\fP() does not have this requirement. For portable code, \fBtzset\fP(3) should be called before \fBlocaltime_r\fP(). .SH "СМ. ТАКЖЕ" \fBdate\fP(1), \fBgettimeofday\fP(2), \fBtime\fP(2), \fButime\fP(2), \fBclock\fP(3), \fBdifftime\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3), \fBtimegm\fP(3), \fBtzset\fP(3), \fBtime\fP(7) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , Katrin Kutepova , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .