В Линукс для этого есть функция gettimeofday(some parameters), а в Windows можно привести к timeval разве что результат функции GetTickCount() да и то, эта функция возвращает значение в миллисекундах. Следовательно — не подходит.
Подскажите ,пожалуйста, можно ли решить мою проблему?
Здравствуйте DenisII,
Не все здесь писали на Линукс и пользовались именно той функцией, что и ты. А также не имеют желания/возможности оценить ее. Напиши подробно чего ты хочешь получить и тогда тебе смогут помочь.
Что такое timeval и чем он замечателен ?
Что тебе требуется ...
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>Что такое timeval и чем он замечателен ?
struct timeval{
long tv_sec; // seconds
long tv_usec; // and microseconds
};
declared in winsock2.h
Мне нужно получить текущее время в указанном формате.
Здравствуйте DenisII, Вы писали:
DII>В Линукс для этого есть функция gettimeofday(some parameters), а в Windows можно привести к timeval разве что результат функции GetTickCount() да и то, эта функция возвращает значение в миллисекундах. Следовательно — не подходит.
DII>Подскажите ,пожалуйста, можно ли решить мою проблему?
timeval имеет такую структуру
struct timeval {
long tv_sec; // seconds long tv_usec; // and microseconds
};
что полученное значение от GetTickCount() привести к этому нельзя?!
На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>Здравствуйте __Avatar__, A>>На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!
VK>Миллисекунда — это 10 в -3 степени, а микросекунда 10 в -6. VK>И скажи на милость как это можно вычислить ?
Извини не заметил а зачем такая точность до микросекунд? Уж не с сокетами лит ты работаешь?
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
A>>На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!
VK>Миллисекунда — это 10 в -3 степени, а микросекунда 10 в -6. VK>И скажи на милость как это можно вычислить ?
Легко. Но с потерей точности :-)
microseconds = milliseconds * 1000;
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте Павел Кузнецов,
Ты немножко ошибся:
микросекунда в 1000 раз меньше нежели миллисекунда.
микросекунда = миллисекунда/1000
Таким образом из миллисекунд микросекунды можно получить с точностью до миллисекунды
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>Ты немножко ошибся:
Отнюдь.
VK>микросекунда в 1000 раз меньше нежели миллисекунда. VK>микросекунда = миллисекунда/1000
Конечно, но это означает, что получить время, выраженное в микросекундах (microseconds) можно, умножив время, выраженное в миллисекундах (milliseconds), на 1000, как и было написано в примере. Например, если в миллисекундах время составляет 10, то в микросекундах этот же интервал будет 10000.
VK>Таким образом из миллисекунд микросекунды можно получить с точностью до миллисекунды :)
Ну, а я про что? Но получить-то можно.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>Полностью с тобой согласен, но разве надо интервал, а не мгновенное значение в текущий момент времени ?
Те же рассуждения относятся и к значению текущего времени, т.к. последнее с точки зрения программирования также является интервалом. Т.е. если текущее время 5 миллисекунд, то, будучи выраженным в микросекундах, оно будет составлять 5000 микросекунд с точностью до 1 миллисекунды или 1000 микросекунд.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте DenisII, Вы писали:
DII>Здравствуйте Vasiliy_Krasnokutsky, Вы писали:
VK>>Что такое timeval и чем он замечателен ? DII>struct timeval{ DII> long tv_sec; // seconds DII> long tv_usec; // and microseconds DII>}; DII>declared in winsock2.h DII>Мне нужно получить текущее время в указанном формате.
DII>С уважением, Денис.
timeval используется в функции select для задания таймаута, т.е. ты сам пишешь туда сколько ждать. Для получения текущего времени есть функции
GetSystemTime
GetLocalTime
Здравствуйте DenisII, Вы писали:
DII>В Линукс для этого есть функция gettimeofday(some parameters), а в Windows можно привести к timeval разве что результат функции GetTickCount() да и то, эта функция возвращает значение в миллисекундах. Следовательно — не подходит.
DII>Подскажите ,пожалуйста, можно ли решить мою проблему?
Попробуй поюзать
BOOL QueryPerformanceFrequency(
LARGE_INTEGER *lpFrequency // current frequency
);
и
BOOL QueryPerformanceCounter(
LARGE_INTEGER *lpPerformanceCount // counter value
);
GetTickCount мне не подходит, я ошибся , с помощью этой функции можно делать разве что замеры времени, а мне нужно текущее значение времени.
А проблему свою я наверное все-таки решу путем приведения SYSTEMTIME к timeval или SYSTEMTIME->FILETIME->timeval.