概述
#include<time.h>
#include <sys/time.h>
#include<stdio.h>
//gcc -o systime systime.c
int getSystemTime()
{
time_t timer;
struct tm t_tm;
time(&timer);
localtime_r(&timer, &t_tm);
printf("today is %4d/%02d/%02d %02d:%02d:%02drn", t_tm.tm_year+1900,
t_tm.tm_mon+1, t_tm.tm_mday, t_tm.tm_hour, t_tm.tm_min, t_tm.tm_sec);
return 0;
}
/************************************************
设置操作系统时间
参数:*dt数据格式为"2006-4-20 20:30:30"
调用方法:
char *pt="2006-4-20 20:30:30";
SetSystemTime(pt);
**************************************************/
int SetSystemTime(void)
{
struct tm rtc_time;
struct tm _tm;
struct timeval tv;
time_t timep;
char dt[128];
printf("Input date, format: 2006-4-20 20:30:30rn");
fgets(dt, 128, stdin);
printf("Your input is %srn", dt);
sscanf(dt, "%d-%d-%d %d:%d:%d", &rtc_time.tm_year,
&rtc_time.tm_mon, &rtc_time.tm_mday,&rtc_time.tm_hour,
&rtc_time.tm_min, &rtc_time.tm_sec);
_tm.tm_sec = rtc_time.tm_sec;
_tm.tm_min = rtc_time.tm_min;
_tm.tm_hour = rtc_time.tm_hour;
_tm.tm_mday = rtc_time.tm_mday;
_tm.tm_mon = rtc_time.tm_mon - 1;
_tm.tm_year = rtc_time.tm_year - 1900;
timep = mktime(&_tm);
tv.tv_sec = timep;
tv.tv_usec = 0;
if(settimeofday (&tv, (struct timezone *) 0) < 0)
{
printf("Set system datatime error!/n");
return -1;
}
return 0;
}
void Usage(void)
{
printf(" -h, helpn"
" -s, set systimen"
" -g, get systiemn");
}
int main(int argc, char *argv[])
{
int s32Ret;
if (argc < 2)
{
Usage();
return -1;
}
int count;
for(count = 1; count < argc; count++)
{
if(!strcmp(argv[count], "-h"))
{
Usage();
return 0;
}
else if(!strcmp(argv[count], "-s"))
{
s32Ret = SetSystemTime();
if(0 == s32Ret)
{
printf("Set system datatime OK!rn");
return 0;
}
else
{
return 0;
}
}
else if(!strcmp(argv[count], "-g"))
{
getSystemTime();
}
}
return 0;
}
最后
以上就是温柔心锁为你收集整理的linux c获得时间和设置时间 函数的全部内容,希望文章能够帮你解决linux c获得时间和设置时间 函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复