首页 >后端开发 >C++ >没有第三方库,如何在 Linux 上获得毫秒级的时间?

没有第三方库,如何在 Linux 上获得毫秒级的时间?

Barbara Streisand
Barbara Streisand原创
2024-11-21 06:20:10316浏览

How Can You Get Milliseconds Time on Linux Without Third-Party Libraries?

在没有第三方库的 Linux 上获取毫秒时间

与 Windows 不同,其中 Clock() 函数提供毫秒时间, Linux,它将其四舍五入到最接近的 1000。这将精度限制为秒级,使其无法用于捕获毫秒。

虽然 Qt 通过其 QTime 类提供了解决方案,但仍在寻求更通用的方法。通过利用标准 C 库,可以采用可靠的方法在 Linux 上获取毫秒时间。

以下代码片段演示了如何使用 gettimeofday() 函数实现此目的:

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
    struct timeval start, end;

    long mtime, seconds, useconds;    

    gettimeofday(&start, NULL);
    usleep(2000);
    gettimeofday(&end, NULL);

    seconds  = end.tv_sec  - start.tv_sec;
    useconds = end.tv_usec - start.tv_usec;

    mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;

    printf("Elapsed time: %ld milliseconds\n", mtime);

    return 0;
}

通过利用 gettimeofday() 函数,代码检索指定延迟(本例中为 2 毫秒)之前和之后的当前时间。然后计算秒和微秒的差值并将其转换为毫秒。这种方法提供了一种精确且符合标准的方法,无需依赖第三方库即可在 Linux 上获取毫秒时间。

以上是没有第三方库,如何在 Linux 上获得毫秒级的时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn