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

发表于:2016-4-01 09:31

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

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

  一、时间类型。Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm.
  (1) time_t是一个长整型,一般用来表示用1970年以来的秒数.
  该类型定义在中.
  一般通过 time_t time = time(NULL); 获取.
  (2) struct timeb结构: 主要有两个成员, 一个是秒, 另一个是毫秒, 精确度为毫秒.
  struct timeb
  {
  time_t time;
  unsigned short millitm;
  short timezone;
  short dstflag;
  };
  由函数int ftime(struct timeb *tp); 来获取timeb.
  成功返回0, 失败返回-1.
  (3) struct timeval有两个成员,一个是秒,一个是微妙.
  struct timeval
  {
  long tv_sec; /* seconds */
  long tv_usec; /* microseconds */
  };
  由int gettimeofday(struct timeval *tv, struct timezone *tz);获取.
  struct timezone结构的定义为:
  struct timezone
  {
  int tz_minuteswest; /* 和Greewich时间差了多少分钟*/
  int tz_dsttime; /* 日光节约时间的状态 */
  };
  (4) struct timespec有两个成员,一个是秒,一个是纳秒, 所以最高精确度是纳秒.
  struct timespec
  {
  time_t tv_sec; /* seconds */
  long tv_nsec; /* nanoseconds */
  };
  一般由函数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的高精度版本
  获取特定时钟的时间精度:
  long clock_getres(clockid_t );
  设置特定时钟的时间:
  long clock_settime(clockid_t ,struct timespec*);
  休眠time中指定的时间,如果遇到信号中断而提前返回,则由left_time返回剩余的时间:
  long clock_nanosleep(clockid_t ,int flag,timespec* time,timespec* left_time);
  (5) clock_t类型, 由clock_t clock(); 返回获取.
  表示进程占用的cpu时间. 精确到微秒.
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号