【问题标题】:How to get current time with milliseconds using "time.h" library (only)?如何使用“time.h”库(仅)以毫秒为单位获取当前时间?
【发布时间】:2013-06-25 03:41:41
【问题描述】:

我还需要仅使用“time.h”库来获取毫秒数。

几秒钟后,这就是我所拥有的:

time_t now;
time(&now);

printf("seconds since  Jan 1, 1970 %d", now);

【问题讨论】:

  • 这个问题的答案主要取决于你有什么标准......只有 C...... 或 POSIX,如果是,是哪个版本。

标签: c++ c time time-t


【解决方案1】:

分别由 C 和 C++ 标准指定的 <time.h><ctime> 头文件不支持亚秒级计时。

如果您可以使用 C++ 并拥有与 C++11 兼容的环境,那么您可以通过 std::chrono 功能获得可移植支持。还有一个boost::chrono 可以在旧版本的 C++ 中使用。

否则,您将不得不使用特定系统,例如 Linux/Unix 中的 gettimeofday 和 Windows 中的 SystemTime。对于其他操作系统,您需要查看有哪些时间函数(如果有)。

【讨论】:

    【解决方案2】:

    通常会为此使用特定于操作系统的或第三方库函数(例如,Linux 上的clock_gettime)。但是,如果您很绝望并且真的无法使用任何其他函数,您可以使用 time.h 中的clock() 函数让您的程序忙等待并计算处理器周期。然而,这当然不是一个好主意 - 只需使用提供您需要的许多其他头文件之一。

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2017-02-20
      • 1970-01-01
      • 2011-05-10
      相关资源
      最近更新 更多