4

Linux の C++ で gettimeofday() を使用するよりオブジェクト指向の代替手段はありますか? たとえば、次のようなコードを記述できるのが好きです。

DateTime now = new DateTime;
DateTime duration = new DateTime(2300, DateTime.MILLISECONDS)
DateTime deadline = now + duration;

while(now < deadline){
    DoSomething();
    delete now;
    now = new DateTime()
}

ターゲットは組み込み Linux システムで、Boost ライブラリはありませんが、移植しやすいもの (ヘッダー ファイルのみで実装されているものなど) があるかもしれません。

4

4 に答える 4

2

したがって、ブーストの移植は私のターゲットのオプションではありませんでした。代わりに、gettimeofday() を使用する必要がありました。ただし、timeval 構造体を処理するための優れたマクロがいくつかあります。sys/time.h

#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

于 2010-02-05T08:10:57.837 に答える
0

ctimeのものを使っても大丈夫だと思います

#include <ctime>

time
difftime
mktime

非常にポータブルな方法で仕事をする必要があります。 cplusplus.com

于 2010-02-04T08:38:02.630 に答える
0
/usr/include/linux/time.h 

構造を与える:-

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

Linuxでは、それを使用できるかもしれません...

于 2010-02-04T12:59:22.697 に答える