有两种时间(来自于Stevens的Advanced Programming in UNIX Environment):
1.日历时间,是从1970年1月1日00:00:00以来国际标准时间(UTC)所经历的秒数累计值。
2。进程时间,也叫CPU时间,用以计进程所耗的CPU资源。以时钟滴答数计算。当度量进程的执行,UNIX给出三个进程时间值。
a. 时钟时间:进程运行时间的总量,它和系统运行进程数目的多少有关。
b. 用户CPU时间:执行用户指令的时间
c. 系统CPU时间:进程执行内核所经历的时间。
取得日历时间的系统调用为:time()函数, 其值保存在time_t 的结构中。
E.g: time_t time = time(NULL);
取得UNIX的日历时间后, UNIX提供了一些函数来转化日历时间为人类习惯的日期和时间。
struct tm 保存的是年月日时分秒周表示的时间。
可以用localtime()函数把time_t 的格式转化为tm的格式。
通过asctimef()把tm转化为字符串。
strftime()把tm转化为格式化字符串。
ctime()把time_t转化为字符串
gmtime() 和mktime()把tm转化为time_t.
对进程时间,UNIX提供了函数times(struct tms* ), 此函数返回clock_t,并填写 tms结构.
系统提供了每秒钟多少滴答的次数,利用函数sysconf(_SC_CLK_TCK_) 得到的返回值,此值就是每秒的滴答数。
Clock_t 除以 每秒滴答数就是秒数。