C/C++ time_t 以微秒为单位

Str*_*ife 2 c c++ time-t seconds

该程序以秒为单位返回时间。我需要在微秒内返回它。

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

float R = (timeEnd - timeStart);
std::cout << R << std::endl;
Run Code Online (Sandbox Code Playgroud)

Luk*_*s W 5

如果您正在寻找更高的分辨率,您可以使用std::chrono::high_resolution_clockC++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;
Run Code Online (Sandbox Code Playgroud)

输出类似

It took me 0.091001 seconds.
Run Code Online (Sandbox Code Playgroud)

来自http://www.cplusplus.com/reference/chrono/high_resolution_clock/now/ 的示例