14.3.1. Время в микросекундах: gettimeofday()

14.3.1. Время в микросекундах: gettimeofday()

Первой задачей является получение времени дня:

#include <sys/time.h>

int gettimeofday(struct timeval *tv, void *tz); /* определение POSIX, а не GLIBC */

gettimeofday() позволяет получить время дня.[156] В случае успеха возвращается 0, при ошибке -1. Аргументы следующие:

struct timeval *tv

Этот аргумент является указателем на struct timeval, которая вскоре будет описана и в которую система помещает текущее время.

void *tz

Это аргумент больше не используется; он имеет тип void*, поэтому он всегда должен равняться NULL. (Справочная страница описывает, для чего он использовался, а затем утверждает, что он устарел. Прочтите, если интересуетесь подробностями.)

Время представлено структурой struct timeval:

struct timeval {

 long tv_sec; /* секунды */

 long tv_usec; /* микросекунды */

};

Значение tv_sec представляет секунды с начала Эпохи; tv_usec является числом микросекунд в секунде.

Справочная страница GNU/Linux gettimeofday(2) документирует также следующие макросы:

#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)

#define timercmp(tvp, uvp, cmp)

 ((tvp)->tv_sec cmp (uvp)->tv_sec ||

 (tvp)->tv_sec == (uvp)->tv_sec &&

 (tvp)->tv_usec cmp (uvp)->tv_usec)

#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)

Эти макросы работают со значениями struct timeval*; то есть указателями на структуры, и их использование должно быть очевидным из их названий и кода. Особенно интересен макрос timercmp(): третьим аргументом является оператор сравнения для указания вида сравнения. Например, рассмотрим определение того, является ли одна struct timeval меньше другой:

struct timeval t1, t2;

...

if (timercmp(&t1, & t2, <))

 /* t1 меньше, чем t2 */

Макрос развертывается в

((&t1)->tv_sec < (&t2)->tv_sec ||

(&t1)->tv_sec == (&t2)->tv_sec &&

(&t1)->tv_usec < (&t2)->tv_usec)

Это значит: «если t1.tv_sec меньше, чем t2.tv_sec, ИЛИ если они равны и t1.tv_usec меньше, чем t2.tv_usec, тогда…».

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

2.1.3 Время Жизни

Из книги C++ автора Хилл Мюррей

2.1.3 Время Жизни Если программист не указал иного, то объект создается, когда встречается его описание, и уничтожается, когда его имя выходит из области видимости, Объекты с глобальными именами создаются и инициализируются один раз (только) и «живут» до завершения


Сокращайте время

Из книги Getting Real (на русском) [вычитывается] автора 37signals

Сокращайте время РазделяйтеСокращайте время разработки, разбивая месяцы на недели. Если проект требует 12 недель работы, разбейте его на 12 небольших кусков;. Если проект требует 30 часов работы, разбейте на куски по 6-10 часов и делайте каждый шаг за один раз, за один день.Вы


Единое время

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

Единое время Людям нужно время, чтобы постоянно добиваться своегоСотрудники 37signals находятся в четырех городах и в восьми часовых поясах. От Прово, штат Юта до Копенгагена, Дания. Есть только 4-5 часов в течение дня, когда мы работаем вместе. Когда наша команда спит, Давид,


Дата и время

Из книги Реестр Windows автора Климов А

Дата и время Чтобы открыть окно редактирования даты и времени, нужно дважды щелкнуть кнопкой мыши на значке Дата и время окна Панель управления. В результате на экране появится окно Свойства: Дата и время, в котором на вкладке Часовой пояс отображается соответствующий


Cистемное время

Из книги Установка и настройка Windows XP. Легкий старт автора Донцов Дмитрий

Cистемное время Windows XP умеет подстраивать системное время, сверяясь со специальными серверами в интернете. Можно изменить адреса используемых серверов.Без использования реестра: Щелкните правой кнопкой мыши на значке часов в системной области панели задач, выберите


Дата и время

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Дата и время Если жесткий диск был отформатирован, то следует установить текущее число и время. Есть два способа открыть окно Свойства: Дата и время (рис. 3.2):• в окне Панель управления дважды щелкнуть на значке Дата и время;• на Панели задач дважды щелкнуть на


Системное время

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

Системное время Чтобы получить или установить системное время на устройстве, нужно использовать функции GetSystemTime и SetSystemTime. Следует учитывать, что функция GetSystemTime возвращает время по Гринвичу, а не местное время. Код, иллюстрирующий применение этих функций, приведен в


2.4.2. Время установки Windows 7 и время жизни аккумулятора

Из книги Linux программирование в примерах автора Роббинс Арнольд

2.4.2. Время установки Windows 7 и время жизни аккумулятора Если вы устанавливаете Windows 7 на ноутбук или нетбук, желательно подключить его к сети питания. Если это невозможно, тогда лучше не начинать установку Windows. Хотя весь процесс установки занимает около 20–25 минут (во всяком


14.3.2. Файловое время в микросекундах: utimes()

Из книги Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов автора Экслер Алекс

14.3.2. Файловое время в микросекундах: utimes() В разделе 5.5.3 «Изменение временных отметок: utime()» был описан системный вызов utime() для установки времени последнего обращения и изменения данного файла. Некоторые файловые системы хранят эти временные отметки с разрешением в


ВРЕМЯ «Ч»

Из книги Русский справочник по Win32 API автора Сорока Тарас

ВРЕМЯ «Ч» Как известно, очень многое в схеме построения безопасности в офисе направлено на решение проблем в случае наступления так называемого времени «Ч» — то есть Чужой в офисе. Да на самом деле всё равно, кто это будет: налётчики, подосланные конкурентами, марсиане,


Время

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Время CompareFileTime Функция CompareFileTime сравнивает два 64-битных файловых времени. LONG CompareFileTime ( CONST FILETIME * lpFileTime1 , // pointer to first file time CONST FILETIME * lpFileTime2 // pointer to second file time ); Параметры lpFileTime 1 - указывает на структуру типа FILETIME , которая определяет первое 64-битное файловое время. lpFileTime 2 -


8.7, Функция gettimeofday(): системные часы

Из книги Информационные технологии в СССР. Создатели советской вычислительной техники автора Ревич Юрий Всеволодович

8.7, Функция gettimeofday(): системные часы Функция gettimeofday() определяет текущее системное время. В качестве аргумента она принимает структуру типа timeval, в которую записывается значение времени (в секундах), прошедшее с начала эпохи UNIX (1-е января 1970 г., полночь по Гринвичу). Это


Опережая время

Из книги Установка, настройка и восстановление Windows 7 на 100% автора Ватаманюк Александр Иванович

Опережая время Казалось, можно было успокоиться, отдохнуть от напряженнейшего труда или, во всяком случае, сделать передышку.Этого не получилось и, наверно, просто не могло получиться. Еще в 1966 году Карцев выдвинул идею создания многомашинного вычислительного комплекса,


Дата и время

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

Дата и время Стандартный системный компонент, позволяющий управлять встроенными часами Windows, которые вы можете наблюдать на панели уведомлений. Кроме того, можно настроить отображение дополнительных часов, которые могут показывать время другого часового пояса. Здесь


16.4. Опережая время

Из книги Ноутбук [секреты эффективного использования] автора Пташинский Владимир

16.4. Опережая время В данном примере мы рассмотрим чрезвычайно простой способ сделать осеннюю фотографию из летней. В качестве исходной подойдет практически любая фотография, на которой сняты деревья (рис. 16.20). Чем отличаются деревья летом и осенью? Правильно – цветом


Настоящее время

Из книги автора

Настоящее время За последние 5–7 лет в «ноутбукостроении» никаких революционных событий не произошло. Конечно, ноутбуки стали более мощными, легкими, надежными, стильными и в этом плане будут развиваться и дальше.Скорее всего, очередной прорыв произойдет тогда, когда в