32位Linux时钟()溢出

rwa*_*ace 2 c++ linux time clock

我需要在Linux(以及其他类Unix系统)上的C++中测量长计算所花费的CPU(而非挂钟)时间,所以我使用的是clock().问题:在32位系统上,大约2000或4000秒后会出现这种情况.

推荐的解决方法是什么?

Joh*_*itb 12

您想使用getrusage哪个填充以下结构:

struct rusage {
    struct timeval ru_utime; /* user time used */
    struct timeval ru_stime; /* system time used */
    ...
};
Run Code Online (Sandbox Code Playgroud)

完成后,struct timeval:

struct timeval {
    time_t      tv_sec;     /* seconds */
    suseconds_t tv_usec;    /* microseconds */
};
Run Code Online (Sandbox Code Playgroud)

与往常一样,请参阅联机帮助页了解详细信息(man getrusage)