首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相当于Linux上的GetTickCount()

相当于Linux上的GetTickCount()
EN

Stack Overflow用户
提问于 2010-06-02 21:47:41
回答 4查看 36.3K关注 0票数 32

我正在寻找一个与Linux上的GetTickCount()等价物。

目前,我使用的是Python的time.time(),它可能会调用gettimeofday()。我担心的是,如果时钟被弄乱了,那么返回的时间( unix纪元)可能会不稳定地改变,比如被NTP弄乱。一个简单的过程或系统墙时间,只有以恒定的速度正增长就足够了。

在C或Python中有这样的时间函数吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-02 21:55:08

你可以使用CLOCK_MONOTONIC,例如在C:

代码语言:javascript
复制
struct timespec ts;
if(clock_gettime(CLOCK_MONOTONIC,&ts) != 0) {
 //error
}

请参阅此问题以了解Python方式- How do I get monotonic time durations in python?

票数 30
EN

Stack Overflow用户

发布于 2014-07-27 20:48:55

这似乎起作用了:

代码语言:javascript
复制
#include <unistd.h>
#include <time.h>

uint32_t getTick() {
    struct timespec ts;
    unsigned theTick = 0U;
    clock_gettime( CLOCK_REALTIME, &ts );
    theTick  = ts.tv_nsec / 1000000;
    theTick += ts.tv_sec * 1000;
    return theTick;
}

是的,get_tick()是我的应用程序的主干。每个“任务”由一个状态机组成,例如,can多任务而不使用线程,进程间通信可以实现非阻塞延迟。

票数 8
EN

Stack Overflow用户

发布于 2010-06-02 22:03:24

您应该使用:clock_gettime(CLOCK_MONOTONIC, &tp);。这个调用不会像Windows中的GetTickCount()那样受到系统时间调整的影响。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2958291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档