Linux时间相关结构体和函数整理

发表于:2013-2-27 09:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:知然    来源:51Testing软件测试网采编

  一、时间类型。Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm.

  (1)time_t是一个长整型,一般用来表示用1970年以来的秒数

  该类型定义在<sys/time.h>中,一般通过 time_t time = time(NULL); 获取。

  (2)struct timeb结构:主要有两个成员,一个是秒,另一个是毫秒,精确度为毫秒。

  1. struct timeb
  2. {
  3.     time_t time;
  4.     unsigned short millitm;
  5.     short timezone;
  6.     short dstflag;
  7. };

  由函数int ftime(struct timeb *tp);来获取timeb。

  成功返回0,失败返回-1。

  (3)struct timeval有两个成员,一个是秒,一个是微妙。

  1. struct timeval 
  2. {
  3.     long tv_sec; /* seconds */
  4.     long tv_usec; /* microseconds */
  5. };

  由int gettimeofday(struct timeval *tv, struct timezone *tz);获取。

  struct timezone结构的定义为:

  1. struct timezone
  2. {
  3.    int tz_minuteswest; /* 和Greewich时间差了多少分钟*/
  4.    int tz_dsttime; /* 日光节约时间的状态 */
  5. };

  (4)struct timespec有两个成员,一个是秒,一个是纳秒, 所以最高精确度是纳秒。

  1. struct timespec
  2. {
  3.     time_t tv_sec; /* seconds */
  4.     long tv_nsec; /* nanoseconds */
  5. };

  一般由函数long clock_gettime (clockid_t which_clock, struct timespec *tp); 获取.

  获取特定时钟的时间,时间通过tp结构传回,目前定义了6种时钟,分别是

  CLOCK_REALTIME               统当前时间,从1970年1.1日算起
  CLOCK_MONOTONIC              系统的启动时间,不能被设置
  CLOCK_PROCESS_CPUTIME_ID     进程运行时间
  CLOCK_THREAD_CPUTIME_ID      线程运行时间
  CLOCK_REALTIME_HR            CLOCK_REALTIME的高精度版本
  CLOCK_MONOTONIC_HR           CLOCK_MONOTONIC的高精度版本

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号