C / C ++ time_t в микросекундах

эта программа возвращает время в секундах. Мне нужно вернуть его в микросекунд. Вы можете мне помочь?

    time_t timeStart = time(0);
usleep(2.5e6);
time_t timeEnd = time(0);

float R = (timeEnd - timeStart);
std::cout << R << std::endl;

.

1

Решение

Посмотрите на std::chrono заголовок. Он содержит много разных опций для манипуляции временем, в том числе возможность конвертировать в microseconds с помощью std::chrono::duration_cast.

1

Другие решения

Если вы ищете более высокое разрешение, вы можете использовать std::chrono::high_resolution_clock из C ++ 11.

#include <chrono>

using namespace std::chrono;

high_resolution_clock::time_point t1 = high_resolution_clock::now();

/* some extensive action... */
usleep(2.5e6);

high_resolution_clock::time_point t2 = high_resolution_clock::now();

duration<double> time_span = duration_cast<duration<double>>(t2 - t1);

std::cout << "It took me " << time_span.count() << " seconds.";
std::cout << std::endl;

Выводит что-то вроде

It took me 0.091001 seconds.

Пример из http://www.cplusplus.com/reference/chrono/high_resolution_clock/now/

1

используя функцию gettimeofday

#include <sys/time.h>

int gettimeofday(struct timeval *tv, struct timezone *tz);

int settimeofday(const struct timeval *tv, const struct timezone *tz);

Требования к макросу тестирования возможностей для glibc (см. Feature_test_macros (7)):

   settimeofday(): _BSD_SOURCE

ОПИСАНИЕ
Функции gettimeofday () и settimeofday () могут получать и устанавливать время, а также часовой пояс. Телевизионный аргумент является
struct timeval (как указано в):

       struct timeval {
time_t      tv_sec;     /* seconds */
suseconds_t tv_usec;    /* microseconds */
};

and gives the number of seconds and microseconds since the Epoch (see time(2)).  The tz argument is a struct timezone:

struct timezone {
int tz_minuteswest;     /* minutes west of Greenwich */
int tz_dsttime;         /* type of DST correction */
};

эта функция может получить микросекунду

1
По вопросам рекламы [email protected]