一、时间类型。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时间. 精确到微秒.