c - Clock() 函数内部如何工作?

标签 c clock timing processor standard-library

C标准库中的函数clock()和其他相关计时函数内部使用的机制是什么?有人可以用 C 语言编写类似的函数吗?还是在装配中?

手动编写这样的函数需要什么知识?有必要了解处理器的详细结构吗?

最佳答案

clock() 的实际实现取决于正在运行的内核。请注意,在成熟的操作系统中,您无法直接访问硬件,并且必须使用系统调用等内核机制。

例如,查看 linux version of clock() in glibc你可以看到它使用了 times.c 中定义的函数 __times()它又使用 Linux 系统调用。

BSD version 进行比较这显然是不同的,并且依赖于 __getrusage()。

为了自己编写此类函数,您必须了解内核,这通常需要您了解其运行的硬件的详细信息。

关于c - Clock() 函数内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425298/

相关文章:

ruby - 如何从 PgSQL DB 获取时间

c - C语言中 "conditional inclusion"是什么意思?

java - 如何以秒为单位获取自午夜以来的时间

c - 如何让 CLion 调试器/控制台告诉我我的程序运行了多少秒?

java - 如果时钟更改/调整,我可以收到通知吗?

java - 使用Java的时钟程序(JApplet)

javascript - $.each 内的 setTimeout 不会遵守时间安排

c - 确定什么 secret 握手导致他们只打印给定的行一次

c++ - OpenCV 卡尔曼滤波器

c - 如何在 C 中每个 in 的末尾打印一个美元符号