【发布时间】:2013-06-25 03:41:41
【问题描述】:
我还需要仅使用“time.h”库来获取毫秒数。
几秒钟后,这就是我所拥有的:
time_t now;
time(&now);
printf("seconds since Jan 1, 1970 %d", now);
【问题讨论】:
-
这个问题的答案主要取决于你有什么标准......只有 C...... 或 POSIX,如果是,是哪个版本。
我还需要仅使用“time.h”库来获取毫秒数。
几秒钟后,这就是我所拥有的:
time_t now;
time(&now);
printf("seconds since Jan 1, 1970 %d", now);
【问题讨论】:
分别由 C 和 C++ 标准指定的 <time.h> 或 <ctime> 头文件不支持亚秒级计时。
如果您可以使用 C++ 并拥有与 C++11 兼容的环境,那么您可以通过 std::chrono 功能获得可移植支持。还有一个boost::chrono 可以在旧版本的 C++ 中使用。
否则,您将不得不使用特定系统,例如 Linux/Unix 中的 gettimeofday 和 Windows 中的 SystemTime。对于其他操作系统,您需要查看有哪些时间函数(如果有)。
【讨论】:
通常会为此使用特定于操作系统的或第三方库函数(例如,Linux 上的clock_gettime)。但是,如果您很绝望并且真的无法使用任何其他函数,您可以使用 time.h 中的clock() 函数让您的程序忙等待并计算处理器周期。然而,这当然不是一个好主意 - 只需使用提供您需要的许多其他头文件之一。
【讨论】: