Linux应用程序开发学习(二)时间操作
时间:2010-05-19 来源:ruixiang
二,时间编程
1,基本概念
(1),UTC:世界标准时间,即格林威治标准时间GMT。
(2),CT:日历时间,从一个标准时间1970.1.1.0开始经过的秒数。
2,time函数,time_t time(time_t *tloc)
获取日历时间。返回日历时间,time_t实质是一个long。
3,gmtime函数,struct tm *gmtime(const time_t *timep)
将日历时间转换为世界标准时间,保存至tm结构,tm结构的成员包含了年,月,日,时,分,秒等。
4,localtime函数,struct tm *localtime(const time_t *timep)
将日历时间转换为本地时间,保存至tm结构。
5,asctime函数,char *ctime(const struct tm *tm)
将tm格式时间转换为时间字符串。
6,ctime函数,char *ctime(const time_t *timep)
将日历时间转换为本地时间字符串。
7,gettimeofday函数,int gettimeofday(struct timeval *tv, struct timezone *tz)
获取今日凌辰到现在的时间差,分两次调用求差,一般用于计算事件耗时。timeval结构包括tv_sec和tv_usec两个成员。
8,sleep函数,unsigned int sleep(unsigned int seconds)
使程序睡眠seconds秒。
9,usleep函数,void usleep(unsigned long usec)
使程序睡眠usec微秒。
10,clock函数,clock_t clock(void)
确定处理器时间,常分两次调用求差,用于计算事件耗时,一般差值与CLOCKS_PER_SEC宏比较,它代表时钟频率。clock_t一般是long,代表时钟周期值。
11,时间间隔定时器函数
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue)
setitimer函数用来设置定时,其中which参数是模式,一般选择ITIMER_REAL表示真实时间,itimeval结构包括两个timeval类型的成员it_interval和it_value。
此函数会使用it_value所指定的到期时间来启动一个which类型的定时器。一旦it_value所指定的时间过去后,内核会使用it_interval所提供的时间重新启动内核定时器。因此,it_value是当前定时器上剩下的时间。一旦it_value的值为零时,它会被设定为it_interval。
时间间隔定时器一般配合SIGALRM的信号处理使用。