【问题标题】:How do I get time duration in C如何在 C 中获得持续时间
【发布时间】:2015-04-10 03:39:30
【问题描述】:

假设我有一个使用套接字处理 HTTP 连接的线程,我需要以某种方式获取处理此连接所需的时间。 (timeAfterConnection - timeBeforeConnection)。

我知道我可以使用类似 timer_gettime 的 API,但是在 Google 搜索之后,我没有找到任何关于如何做到这一点的工作示例。

谁能给我一个在 C 代码中获取时间流逝的例子吗?

【问题讨论】:

  • 你想用 C 还是 C++?这很重要,因为答案可能千差万别。
  • 我认为您不需要 timer_gettime。试试clock_gettime。你只需要在连接之前和之后调用它并减去两次。

标签: c timer time.h


【解决方案1】:
#include <time.h>

struct timespec before, after;
long elapsed_nsecs;

clock_gettime(CLOCK_REALTIME, &before);

/* handle connection */

clock_gettime(CLOCK_REALTIME, &after);

elapsed_nsecs = (after.tv_sec - before.tv_sec) * 1000000000 +
                (after.tv_nsec - before.tv_nsec);

【讨论】:

  • 在 Linux 机器上完美运行。但在 Mac OSX 上并非如此(使用未声明的标识符“CLOCK_REALTIME”)。有没有办法在 Mac 上工作?
  • 抱歉,帮不了你。对 OSX 一无所知:-)
猜你喜欢
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 2012-06-27
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多