什么是在C ++ gettimeofday()最好的替代库?

有没有更多的面向对象的替代使用gettimeofday()在Linux上的C + +? 我喜欢例如能够编写类似这样的代码:

DateTime now = new DateTime; DateTime duration = new DateTime(2300, DateTime.MILLISECONDS) DateTime deadline = now + duration; while(now < deadline){ DoSomething(); delete now; now = new DateTime() } 

目标是一个embedded式Linux系统,没有Boost库,但也许有一些容易移植的东西(例如用头文件实现的东西)。

作为标准C ++库的一部分,没有面向对象的接口来处理时间和间隔。

不过你可能要看看Boost.Date_Time 。 Boost非常有用,写得很好,它实际上是标准C ++库的一部分。

所以移植提升不是我的目标的选择。 相反,我必须去gettimeofday()。 然而在sys/time.h有一些处理timeval结构的好的宏

 #include <sys/time.h> void timeradd(struct timeval *a, struct timeval *b, struct timeval *res); void timersub(struct timeval *a, struct timeval *b, struct timeval *res); void timerclear(struct timeval *tvp); void timerisset(struct timeval *tvp); void timercmp(struct timeval *a, struct timeval *b, CMP); 

我们花了一段时间才找到它们,因为它们不在我机器的手册页上。 看到这个页面: http : //linux.die.net/man/3/timercmp

我认为你应该使用ctime的东西来处理

 #include <ctime> time difftime mktime 

应该以非常便携的方式完成工作。 cplusplus.com

 /usr/include/linux/time.h 

给出结构: –

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

在Linux上,可能是你可以使用它…