clock()函数如何在内部工作?

时间:2017-09-26 11:29:32

标签: c clock timing processor standard-library

c标准库中的函数clock()和其他相关的定时函数在内部使用的机制是什么?有人可以在C中写一个类似的功能吗?还是在组装?

手动编写此类函数需要哪些知识?是否有必要了解有关处理器结构的详细信息?

1 个答案:

答案 0 :(得分:1)

clock()的实际实现取决于正在运行的内核。请注意,在完整的操作系统中,您被限制直接访问硬件,并且必须使用内核机制,例如系统调用。

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

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

为了自己编写这些函数,你必须知道内核,这通常需要你知道它运行的硬件的细节。