首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C语言可以得到准确的时间吗?

用C语言可以得到准确的时间吗?
EN

Stack Overflow用户
提问于 2020-03-02 17:04:43
回答 2查看 192关注 0票数 1

我知道c++中有<chrono>std::chrono::high_resolution_clock::now()可以得到std::chrono::high_resolution_clock::time_point类型的确切时间。但是,我使用的是原始的C语言,所以不可能调用这个函数。time()函数只能获取二级时间。

我的最终目标是测量多线程程序的运行时间。clock()函数会将所有线程的时钟加起来,所以它不能用来测量运行时间。

EN

回答 2

Stack Overflow用户

发布于 2020-03-02 18:09:47

以下代码片段将提供确切的系统时间:

代码语言:javascript
复制
time_t now;
time(&now);
struct tm* now_tm;
now_tm = localtime(&now);
char dte[80];
strftime (dte, 80, "%Y-%m-%d %I:%M:%S", now_tm);
票数 0
EN

Stack Overflow用户

发布于 2020-03-02 18:52:36

不幸的是,更高分辨率的时钟往往会在不同的平台上略有不同。它还取决于您感兴趣的时钟类型(例如实时、CPU时间或单调时间)。

根据您的用例,您可能需要单调的时间…

如果您使用的是POSIX操作系统,那么通常可以使用clock_gettime,但即使这样,可用的时钟也会有很大的不同。例如,macOS doesn't support CLOCK_MONOTONIC,但它有其他API,您可以使用它来获取单调时间。

如果你在Windows上,你可能会想要使用QueryPerformanceCounters

如果你想要一些抽象的东西来消除这些差异,我会在一段时间后使用put something together

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60485476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档