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/