就整体而言,这些不同的标准之间配合得相当好。但是我们也很关注它们之间的差别,特别是ISO C标准和POSIX.1之间的差别。
ISO C定义了函数clock,它返回进程使用的CPU时间,返回值类型是clock_t。为了将此值变换成以秒为单位,将其除以在<time.h>头文件中定义的CLOCKS_PER_SEC。POSIX.1定义了函数times,它返回其调用者及其所有终止子进程的CPU时间以及时钟时间,所有这些值都是clock_t类型值。sysconf函数用来获取每秒中的滴答数,用于表示times函数的返回值。有一个相同的术语,即每秒中的滴答数,但ISO C和POSIX.1的定义却不同。这两个标准也用同一数据类型(clock_t)来保存这些不同的值,这种差别可以在Solaris中看到,其中clock返回微秒数(因此,CLOCK_PER_SEC是一百万),而sysconf为每秒钟的滴答数返回的值是100。
本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/。