我正在寻找一个与Linux上的GetTickCount()等价物。
目前,我使用的是Python的time.time(),它可能会调用gettimeofday()。我担心的是,如果时钟被弄乱了,那么返回的时间( unix纪元)可能会不稳定地改变,比如被NTP弄乱。一个简单的过程或系统墙时间,只有以恒定的速度正增长就足够了。
在C或Python中有这样的时间函数吗?
发布于 2010-06-02 21:55:08
你可以使用CLOCK_MONOTONIC,例如在C:
struct timespec ts;
if(clock_gettime(CLOCK_MONOTONIC,&ts) != 0) {
//error
}请参阅此问题以了解Python方式- How do I get monotonic time durations in python?
发布于 2014-07-27 20:48:55
这似乎起作用了:
#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多任务而不使用线程,进程间通信可以实现非阻塞延迟。
发布于 2010-06-02 22:03:24
您应该使用:clock_gettime(CLOCK_MONOTONIC, &tp);。这个调用不会像Windows中的GetTickCount()那样受到系统时间调整的影响。
https://stackoverflow.com/questions/2958291
复制相似问题