Section 7.23.1 paragraph 1 of the C99 standard defines several "time" terms:
Many functions deal with a calendar time that represents the current date (according to the Gregorian calendar) and time. Some functions deal with local time, which is the calendar time expressed for some specific time zone, and with Daylight Saving Time, which is a temporary change in the algorithm for determining local time. The local time zone and Daylight Saving Time are implementation-defined.
However, the definition of "processor time" is missing.
Section 7.23.2.1 paragraph 2 of the C99 states:
The
clock
function determines the processor time used.
What is "processor time?" Is "processor time" defined within the C99 standard; if so, where is it defined?
答案 0 :(得分:1)
标准没有定义短语"处理器时间"。它以正常的技术英语意义使用它。
该标准包括第2部分中的规范性参考文献清单,其中一个是:
如果该文件定义了"处理器时间",那么该标准使用的定义。我不知道是否有,因为我无法访问该文档。
但这个想法是"处理器时间"是CPU使用的类型数量,它排除了休眠或等待某些事件(如完成I / O请求)所花费的时间。例如,从键盘读取输入线的程序可能会消耗,例如,60秒的挂钟时间" (如果用户需要很长时间才能响应),但处理器时间只有一小部分。通常经过的处理器时间将少于经过的时间"挂钟"时间,但如果程序在多个CPU上运行,它可能会更大。
顺便提一下,这个措辞在C90,C99和C11之间没有显着变化。
答案 1 :(得分:0)
按7.23.1:
标题< time.h> 定义了两个宏... NULL (在7.17中描述); 和
<强> CLOCKS_PER_SEC 强>
扩展为类型 clock_t 的常量表达式(描述 下面)这是每秒返回的值的数量 时钟功能。
因此,处理器时间必须意味着在clock_t
中测量的CLOCKS_PER_SEC
值,因为规范定义了作为调用clock
的结果,而其他地方则使用术语“处理器时间”作为该结果的名称。