我是靠谱客的博主 温柔心锁,最近开发中收集的这篇文章主要介绍linux c获得时间和设置时间 函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#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获得时间和设置时间 函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部