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()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)