linux时间和日期函数

本文详细介绍了Linux系统中的时间概念,包括日历时间和进程时间,并探讨了times、time、clock_gettime等关键函数的使用,以及它们在度量进程执行时间、获取当前时间、设置时钟精度等方面的作用。此外,还讨论了localtime、gmtime、mktime和strftime等函数在处理日期和时间转换中的功能和区别。
摘要由CSDN通过智能技术生成

历史上,UNX系统使用过两种不同的时间值

  1. 日历时间。该值是自协调世界时( Coordinated Universal Time,UTC)1970年1月1日00:000这个特定时间以来所经过的秒数累计值(早期的手册称UTC为格林尼治标准时间)。这些时间值可用于记录文件最近一次的修改时间等。系统基本数据类型time_t用于保存这种时间值。
  2. 进程时间。也被称为CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴答计算。每秒钟曾经取为50、60或100个时钟滴答,调用syscon函数得到每秒的时钟滴答数,系统基本数据类型 clock_t保存这种时间值。

当度量一个进程的执行时间时,UNX系统为一个进程维护了3个进程时间值:

  1. 时钟时间:时钟时间又称为墙上时钟时间( wall clock time),它是进程运行的时间总量,其值与系统中同时运行的进程数有关。每当在本书中提到时钟时间时,都是在系统中没有其他活动时进行
    度量的。
  2. 用户CPU时间:执行用户指令所用的时间总量。
  3. 系统CPU时间:为该进程执行内核程序所经历的的时间。用户用户CPU时间+系统CPU时间=CPU时间

1.times函数

#include <sys/times.h>

clock_t times(struct tms *buf)

返回值:若成功则返回墙上时钟时间(单位:时钟滴答数),如果出错则返回-1。此函数填写由buf指向的tms结构体,该结构体定义如下:

struct tms
{
    clock_t tms_utime;  // tms_utime记录的是进程执行用户代码的时间.
    clock_t tms_stime;  // tms_stime记录的是进程执行内核代码的时间.
    clock_t tms_cutime;  // tms_cutime记录的是子进程执行用户代码的时间.
    clock_t tms_cstime;  // tms_cstime记录的是子进程执行内核代码的时间.
}

此函数常用来计算进程运行的时间。

#include <stdio.h>
#include <unistd.h>
#include <sys/tim
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值