clock()函数在内部是如何工作的?
c标准库中的函数clock()和其他相关计时函数内部使用的机制是什么?有人能用C写一个类似的函数吗?还是在组装clock()函数在内部是如何工作的?,c,clock,timing,processor,standard-library,C,Clock,Timing,Processor,Standard Library,c标准库中的函数clock()和其他相关计时函数内部使用的机制是什么?有人能用C写一个类似的函数吗?还是在组装 手动编写此类函数需要哪些知识?是否有必要了解处理器结构的详细信息?时钟()的实际实现取决于正在运行的内核。请注意,在成熟的操作系统中,您被限制直接访问硬件,并且必须使用内核机制,如系统调用 例如,通过查看,您可以看到它使用了定义的函数_times(),该函数反过来使用Linux系统调用 与明显不同并依赖于_getrusage()的进行比较 为了自己编写这样的函数,您必须了解内核,这通常
手动编写此类函数需要哪些知识?是否有必要了解处理器结构的详细信息?时钟()的实际实现取决于正在运行的内核。请注意,在成熟的操作系统中,您被限制直接访问硬件,并且必须使用内核机制,如系统调用 例如,通过查看,您可以看到它使用了定义的函数_times(),该函数反过来使用Linux系统调用 与明显不同并依赖于_getrusage()的进行比较
为了自己编写这样的函数,您必须了解内核,这通常要求您了解它所运行的硬件的详细信息。为什么要手动重新编程时钟?@izlin我不想手动重新编程时钟。但是,即使Linux内核在英特尔、PowerPC或其他设备上运行,它也不一样吗?内核在不同的硬件上有什么不同?这取决于你所说的“相同”是什么意思。Linux内核公开的接口最小化了平台依赖性,但它与在Intel或PowerPC上运行的二进制文件并不完全相同(在编译过程中,它还使用独立的平台依赖源文件)。“正在运行的内核”不限于Linux内核,它包括BSD、Solaris等。是否有可能某些Linux系统调用在一个硬件平台上工作而在另一个硬件平台上不工作?什么是运行内核?