mktime(将时间结构数据转换成经过的秒数)
相关函数 time,asctime,gmtime,localtime
表头文件 #include<time.h>
定义函数 time_t mktime(strcut tm * timeptr);
函数说明 mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
返回值 返回经过的秒数。
范例 /* 用time()取得时间(秒数),利用localtime()
转换成struct tm 再利用mktine()将struct tm转换成原来的秒数*/
#include<time.h> main() { time_t timep; strcut tm *p; time(&timep); printf(“time() : %d \n”,timep); p=localtime(&timep); timep = mktime(p); printf(“time()->localtime()->mktime():%d\n”,timep); } |
执行 time():974943297
time()->localtime()->mktime():974943297
settimeofday(设置目前时间)
相关函数 time,ctime,ftime,gettimeofday
表头文件 #include<sys/time.h>
#include<unistd.h>
定义函数 int settimeofday ( const struct timeval *tv,const struct timezone *tz);
函数说明 settimeofday()会把目前时间设成由tv所指的结构信息,当地时区信息则设成tz所指的结构。详细的说明请参考gettimeofday()。注意,只有root权限才能使用此函数修改时间。
返回值 成功则返回0,失败返回-1,错误代码存于errno。
错误代码 EPERM 并非由root权限调用settimeofday(),权限不够。
EINVAL 时区或某个数据是不正确的,无法正确设置时间。
time(取得目前的时间)
相关函数 ctime,ftime,gettimeofday
表头文件 #include<time.h>
定义函数 time_t time(time_t *t);
函数说明 此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存。
返回值 成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。
范例
#include<time.h> mian() { int seconds= time((time_t*)NULL); printf(“%d\n”,seconds); } |
执行 9.73E+08