ftime(3) возвращает дату и время

ОБЗОР

#include <sys/timeb.h>

int ftime(struct timeb *tp);

ОПИСАНИЕ

Данная функция возвращает текущее время в секундах и миллисекундах, прошедших начиная с эпохи (Epoch), 1970-01-01 00:00:00 +0000 (UTC). Время возвращается в tp, определённой следующим образом:

struct timeb {
    time_t         time;
    unsigned short millitm;
    short          timezone;
    short          dstflag;
};

В данной структуре time — это количество секунд с начала эпохи; millitm — количество миллисекунд, прошедших после time секунд с начала эпохи. Поле timezone — локальный часовой пояс, измеряемый в минутах западнее Гринвича (отрицательные значения означают минуты восточнее Гринвича). Поле dstflag — флаг, ненулевое значение которого указывает, что в соответствующее время года используется летнее время.

В POSIX.1-2001 сказано, что содержимое полей timezone и dstflag не определено; не используйте их.

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

Эта функция всегда возвращает 0 (в POSIX.1-2001, а также в некоторых системах возвращается -1 при ошибке).

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
ИнтерфейсАтрибутЗначение
ftime() безвредность в нитяхбезвредно (MT-Safe)

СООТВЕТСТВИЕ СТАНДАРТАМ

4.2BSD, POSIX.1-2001. В POSIX.1-2008 спецификация ftime() удалена.

Эта функция устарела. Не используйте её. В случаях, когда достаточно секунд, можно использовать time(2); gettimeofday(2) позволяет работать с микросекундами; функция clock_gettime(3) позволяет работать с наносекундами, однако она пока ещё не очень широко распространена.

ДЕФЕКТЫ

Ранние версии glibc2 работают некорректно и возвращают 0 в поле millitm; начиная с glibc 2.1.1 эта ошибка исправлена.