Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
clock()函数在内部是如何工作的?_C_Clock_Timing_Processor_Standard Library - Fatal编程技术网

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

clock()函数在内部是如何工作的?,c,clock,timing,processor,standard-library,C,Clock,Timing,Processor,Standard Library,c标准库中的函数clock()和其他相关计时函数内部使用的机制是什么?有人能用C写一个类似的函数吗?还是在组装 手动编写此类函数需要哪些知识?是否有必要了解处理器结构的详细信息?时钟()的实际实现取决于正在运行的内核。请注意,在成熟的操作系统中,您被限制直接访问硬件,并且必须使用内核机制,如系统调用 例如,通过查看,您可以看到它使用了定义的函数_times(),该函数反过来使用Linux系统调用 与明显不同并依赖于_getrusage()的进行比较 为了自己编写这样的函数,您必须了解内核,这通常

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


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

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

例如,通过查看,您可以看到它使用了定义的函数_times(),该函数反过来使用Linux系统调用

与明显不同并依赖于_getrusage()的进行比较


为了自己编写这样的函数,您必须了解内核,这通常要求您了解它所运行的硬件的详细信息。

为什么要手动重新编程时钟?@izlin我不想手动重新编程时钟。但是,即使Linux内核在英特尔、PowerPC或其他设备上运行,它也不一样吗?内核在不同的硬件上有什么不同?这取决于你所说的“相同”是什么意思。Linux内核公开的接口最小化了平台依赖性,但它与在Intel或PowerPC上运行的二进制文件并不完全相同(在编译过程中,它还使用独立的平台依赖源文件)。“正在运行的内核”不限于Linux内核,它包括BSD、Solaris等。是否有可能某些Linux系统调用在一个硬件平台上工作而在另一个硬件平台上不工作?什么是运行内核?