手机
当前位置:查字典教程网 >编程开发 >C语言 >C语言中settimeofday函数和gettimeofday函数的使用
C语言中settimeofday函数和gettimeofday函数的使用
摘要:C语言settimeofday()函数:设置当前时间戳头文件:#include#include定义函数:intsettimeofday(co...

C语言settimeofday()函数:设置当前时间戳

头文件:

#include <sys/time.h> #include <unistd.h>

定义函数:

int settimeofday(const struct timeval *tv, const struct timezone *tz);

函数说明:settimeofday()会把目前时间设成由tv 所指的结构信息,当地时区信息则设成tz 所指的结构。详细的说明请参考gettimeofday()。

注意,在Linux下,只有root 权限才能使用此函数修改时间。

返回值:成功则返回0,失败返回-1,错误代码存于errno。

错误代码:

EPERM 并非由root 权限调用settimeofday(),权限不够。

EINVAL 时区或某个数据是不正确的,无法正确设置时间。

C语言gettimeofday()函数:获取当前时间

头文件:

#include <sys/time.h> #include <unistd.h>

定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);

函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。

timeval 结构定义为:

struct timeval{ long tv_sec; //秒 long tv_usec; //微秒 };

timezone 结构定义为:

struct timezone { int tz_minuteswest; //和Greenwich 时间差了多少分钟 int tz_dsttime; //日光节约时间的状态 };

上述两个结构都定义在/usr/include/sys/time.h. tz_dsttime 所代表的状态如下

DST_NONE //不使用 DST_USA //美国 DST_AUST //澳洲 DST_WET //西欧 DST_MET //中欧 DST_EET //东欧 DST_CAN //加拿大 DST_GB //大不列颠 DST_RUM //罗马尼亚 DST_TUR //土耳其 DST_AUSTALT //澳洲(1986 年以后)

返回值:成功则返回0,失败返回-1,错误代码存于errno。

附加说明:EFAULT 指针tv 和tz 所指的内存空间超出存取权限。

范例

#include <sys/time.h> #include <unistd.h> main(){ struct timeval tv; struct timezone tz; gettimeofday (&tv, &tz); printf("tv_sec; %dn", tv.tv_sec); printf("tv_usec; %dn", tv.tv_usec); printf("tz_minuteswest; %dn", tz.tz_minuteswest); printf("tz_dsttime, %dn", tz.tz_dsttime); }

执行结果:

tv_sec: 974857339 tv_usec:136996 tz_minuteswest:-540 tz_dsttime:0

【C语言中settimeofday函数和gettimeofday函数的使用】相关文章:

linux下C语言中的mkdir函数与rmdir函数

基于C++ list中erase与remove函数的使用详解

C语言中怎么在main函数开始前执行函数

浅析C语言中的setjmp与longjmp函数

基于C语言string函数的详解

使用C语言中的time函数获取系统时间

解析C++中虚析构函数的作用

基于C语言字符串函数的一些使用心得

memset函数的使用分析

基于C语言fflush()函数的使用详解

精品推荐
分类导航