Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       time - получить время в секундах

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <time.h>

       time_t time(time_t *_Nullable tloc);

ОПИСАНИЕ

       time()  возвращает  количество  секунд, которое прошло с начала эпохи, 1970-01-01 00:00:00
       +0000 (UTC).

       Если tloc не равно NULL, то возвращаемое значение также сохраняется в область  памяти,  на
       которую указывает tloc.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On  success,  the  value  of  time  in  seconds  since  the  Epoch is returned.  On error,
       ((time_t) -1) is returned, and errno is set to indicate the error.

ОШИБКИ

       EFAULT tloc указывает за пределы доступного адресного пространства (однако см. ОШИБКИ).

              В системах,  где  обёрточная  функция  time()  библиотеки  C  вызывает  реализацию,
              предоставляемую  vdso(7)  (то  есть нет ловушки в ядре), из-за некорректного адреса
              может генерироваться сигнал SIGSEGV.

СТАНДАРТЫ

       SVr4, 4.3BSD, C99, POSIX.1-2001.  POSIX does not specify any error conditions.

ЗАМЕЧАНИЯ

       В POSIX.1 для определения секунд,  прошедших  с  начала  эпохи  используется  формула  для
       приблизительного  подсчёта  количества  секунд между указываемым временем и началом эпохи.
       Эта формула учитывает тот факт, что все  годы,  номер  которых  делится  на  4,  считаются
       високосными,  но  годы, которые делятся на 100 не високосные, если они также не делятся на
       400 (которые нужно считать високосными). Это значение  не  является  указанием  на  точное
       количество  секунд  между  заданным  временем  и  началом  эпохи  вследствие игнорирования
       високосных секунд и по причине того, что время в часах необязательно  синхронизировано  со
       временем  стандартного  источника.  Считается,  что  это значение соответствует настоящему
       количеству секунд, прошедшему с начала эпохи.  Дополнительную  информацию  можно  найти  в
       POSIX.1-2008 Rationale A.4.15.

       On  Linux,  a  call  to  time()   with  tloc  specified as NULL cannot fail with the error
       EOVERFLOW, even on ABIs where time_t is a signed 32-bit integer and the clock  reaches  or
       exceeds 2**31 seconds (2038-01-19 03:14:08 UTC, ignoring leap seconds).  (POSIX.1 permits,
       but does not require, the EOVERFLOW error in the case where the seconds  since  the  Epoch
       will not fit in time_t.)  Instead, the behavior on Linux is undefined when the system time
       is out of the time_t range.  Applications intended to run after 2038 should use ABIs  with
       time_t wider than 32 bits.

ДЕФЕКТЫ

       Ошибка,  возвращаемая  из  этого  системного  вызова  неотличима от успешного выполнения в
       случае, когда момент времени — за несколько секунд до эпохи,  поэтому  обёрточная  функция
       библиотеки C никогда не изменяет errno при возврате.

       Аргумент  tloc устарел и в новом коде всегда должен быть равен NULL. Если tloc равно NULL,
       то вызов не может завершиться ошибкой.

   Отличия между библиотекой C и ядром
       На некоторых архитектурах реализация time() находится в vdso(7).

СМ. ТАКЖЕ

       date(1), gettimeofday(2), ctime(3), ftime(3), time(7), vdso(7)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    Azamat    Hackimov
       <azamat.hackimov@gmail.com>,   Dmitry   Bolkhovskikh  <d20052005@yandex.ru>,  Yuri  Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.