C99 definition of "processor time"

时间:2016-04-04 18:58:17

标签: c language-lawyer c99

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?

2 个答案:

答案 0 :(得分:1)

标准没有定义短语"处理器时间"。它以正常的技术英语意义使用它。

该标准包括第2部分中的规范性参考文献清单,其中一个是:

  • ISO / IEC 2382-1:1993,信息技术 - 词汇 - 第1部分:基本术语。

如果该文件定义了"处理器时间",那么该标准使用的定义。我不知道是否有,因为我无法访问该文档。

但这个想法是"处理器时间"是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的结果,而其他地方则使用术语“处理器时间”作为该结果的名称。