Как получить значение времени в timeval?
От: DenisII  
Дата: 24.09.02 12:49
Оценка:
В Линукс для этого есть функция gettimeofday(some parameters), а в Windows можно привести к timeval разве что результат функции GetTickCount() да и то, эта функция возвращает значение в миллисекундах. Следовательно — не подходит.

Подскажите ,пожалуйста, можно ли решить мою проблему?
Re: Как получить значение времени в timeval?
От: Vasiliy_Krasnokutsky Россия  
Дата: 24.09.02 12:55
Оценка:
Здравствуйте DenisII,
Не все здесь писали на Линукс и пользовались именно той функцией, что и ты. А также не имеют желания/возможности оценить ее. Напиши подробно чего ты хочешь получить и тогда тебе смогут помочь.
Что такое timeval и чем он замечателен ?
Что тебе требуется ...

С Уважением Краснокутский Василий
Re[2]: Как получить значение времени в timeval?
От: DenisII  
Дата: 24.09.02 13:04
Оценка:
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:

VK>Что такое timeval и чем он замечателен ?

struct timeval{
long tv_sec; // seconds
long tv_usec; // and microseconds
};
declared in winsock2.h
Мне нужно получить текущее время в указанном формате.

С уважением, Денис.
Re: Как получить значение времени в timeval?
От: __Avatar__ Украина  
Дата: 24.09.02 13:26
Оценка:
Здравствуйте DenisII, Вы писали:

DII>В Линукс для этого есть функция gettimeofday(some parameters), а в Windows можно привести к timeval разве что результат функции GetTickCount() да и то, эта функция возвращает значение в миллисекундах. Следовательно — не подходит.


DII>Подскажите ,пожалуйста, можно ли решить мою проблему?

timeval имеет такую структуру

struct timeval {
  long    tv_sec;         // seconds 
  long    tv_usec;        // and microseconds 
};

что полученное значение от GetTickCount() привести к этому нельзя?!
На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!
Все что ни происходит — к лучшему!
Re[2]: Как получить значение времени в timeval?
От: Vasiliy_Krasnokutsky Россия  
Дата: 24.09.02 13:37
Оценка:
Здравствуйте __Avatar__,
A>На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!

Миллисекунда — это 10 в -3 степени, а микросекунда 10 в -6.
И скажи на милость как это можно вычислить ?
Re[3]: Как получить значение времени в timeval?
От: __Avatar__ Украина  
Дата: 24.09.02 14:00
Оценка:
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:

VK>Здравствуйте __Avatar__,

A>>На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!

VK>Миллисекунда — это 10 в -3 степени, а микросекунда 10 в -6.

VK>И скажи на милость как это можно вычислить ?
Извини не заметил а зачем такая точность до микросекунд? Уж не с сокетами лит ты работаешь?
Все что ни происходит — к лучшему!
Re[3]: Как получить значение времени в timeval?
От: Павел Кузнецов  
Дата: 24.09.02 14:04
Оценка:
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:

A>>На мой взгдяд зная миллисекунды можно легко вычислить секунди и микросекунды!!!


VK>Миллисекунда — это 10 в -3 степени, а микросекунда 10 в -6.

VK>И скажи на милость как это можно вычислить ?

Легко. Но с потерей точности :-)

microseconds = milliseconds * 1000;
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[4]: Как получить значение времени в timeval?
От: Vasiliy_Krasnokutsky Россия  
Дата: 24.09.02 14:09
Оценка:
Здравствуйте Павел Кузнецов,
Ты немножко ошибся:
микросекунда в 1000 раз меньше нежели миллисекунда.
микросекунда = миллисекунда/1000
Таким образом из миллисекунд микросекунды можно получить с точностью до миллисекунды

С Уважением Краснокутский Василий
Re[5]: Как получить значение времени в timeval?
От: Павел Кузнецов  
Дата: 24.09.02 14:16
Оценка:
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:

VK>Ты немножко ошибся:


Отнюдь.

VK>микросекунда в 1000 раз меньше нежели миллисекунда.

VK>микросекунда = миллисекунда/1000

Конечно, но это означает, что получить время, выраженное в микросекундах (microseconds) можно, умножив время, выраженное в миллисекундах (milliseconds), на 1000, как и было написано в примере. Например, если в миллисекундах время составляет 10, то в микросекундах этот же интервал будет 10000.

VK>Таким образом из миллисекунд микросекунды можно получить с точностью до миллисекунды :)


Ну, а я про что? Но получить-то можно.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Как получить значение времени в timeval?
От: Vasiliy_Krasnokutsky Россия  
Дата: 24.09.02 14:26
Оценка:
Здравствуйте Павел Кузнецов,
Полностью с тобой согласен, но разве надо интервал, а не мгновенное значение в текущий момент времени ?
Re[7]: Как получить значение времени в timeval?
От: Павел Кузнецов  
Дата: 24.09.02 14:35
Оценка:
Здравствуйте Vasiliy_Krasnokutsky, Вы писали:

VK>Полностью с тобой согласен, но разве надо интервал, а не мгновенное значение в текущий момент времени ?


Те же рассуждения относятся и к значению текущего времени, т.к. последнее с точки зрения программирования также является интервалом. Т.е. если текущее время 5 миллисекунд, то, будучи выраженным в микросекундах, оно будет составлять 5000 микросекунд с точностью до 1 миллисекунды или 1000 микросекунд.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Как получить значение времени в timeval?
От: VVV Россия  
Дата: 24.09.02 14:40
Оценка:
Здравствуйте 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

оттуда можешь взять и секунды и милисекунды.
Re: Как получить значение времени в timeval?
От: GYB  
Дата: 24.09.02 15:03
Оценка:
Здравствуйте DenisII, Вы писали:

DII>В Линукс для этого есть функция gettimeofday(some parameters), а в Windows можно привести к timeval разве что результат функции GetTickCount() да и то, эта функция возвращает значение в миллисекундах. Следовательно — не подходит.


DII>Подскажите ,пожалуйста, можно ли решить мою проблему?


Попробуй поюзать

BOOL QueryPerformanceFrequency(
  LARGE_INTEGER *lpFrequency   // current frequency
);


и

BOOL QueryPerformanceCounter(
  LARGE_INTEGER *lpPerformanceCount   // counter value
);


В мультипроцессорной среде ещё может понадобиться

DWORD_PTR SetThreadAffinityMask (
  HANDLE hThread,                 // handle to thread
  DWORD_PTR dwThreadAffinityMask  // thread affinity mask
);
Re: Как получить значение времени в timeval?
От: DenisII  
Дата: 25.09.02 08:46
Оценка:
GetTickCount мне не подходит, я ошибся , с помощью этой функции можно делать разве что замеры времени, а мне нужно текущее значение времени.
А проблему свою я наверное все-таки решу путем приведения SYSTEMTIME к timeval или SYSTEMTIME->FILETIME->timeval.

Всем спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.