linux c 时间函数

Posted rohens

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux c 时间函数相关的知识,希望对你有一定的参考价值。

1、 time() 函数提供了 秒 级的精确度

time_t time(time_t * timer)
函数返回从UTC1970-1-1 0:0:0开始到现在的秒数

2、 struct timespec 提供了 ns  级的精确度

定义如下:

typedef long time_t;
#ifndef _TIMESPEC
#define _TIMESPEC
struct timespec {
  time_t tv_sec; // seconds
  long tv_nsec; // and nanoseconds
};
#endif

对应的操作函数为

int clock_gettime(clockid_t, struct timespec *)

其中 clockid_t 为使用的时钟,主要有以下四种:

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

3、struct timeval 提供了 us 级 的精确度

struct timeval {
  time_t tv_sec; // seconds
  long tv_usec; // microseconds
};

对应的操作函数为

int gettimeofday(struct timeval *tv, struct timezone *tz)

其中 timezone 为时区,定义如下:

struct timezone{
  int tz_minuteswest; //miniutes west of Greenwich
  int tz_dsttime; //type of DST correction
};

一般时区填写为 NULL即可。

 


















以上是关于linux c 时间函数的主要内容,如果未能解决你的问题,请参考以下文章

Linux C 中获取local日期和时间 time()&localtime()函数

C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)

Linux中表示“时间”的结构体和相关函数

如何让C语言sleep()函数等待时间小于1秒

如何测量 Linux 和 Windows 中函数的“用户”执行时间

C/C++Linux下system()函数引发的错误