zoukankan      html  css  js  c++  java
  • 系统时钟和硬件时钟同步

    硬件时钟调整与系统时钟一致:

    //system("hwclock -w")

    int SyncSystemClockToHw(void)
    {
    	struct timeval tv;
    	struct tm tm_time;
    	int fd;
    	int ret = 0;
    
    	ret = access("/dev/rtc1",F_OK);
    	if(0 == ret)
    	{
    		fd = open("/dev/rtc1", O_WRONLY);//只写
    		if (fd < 0)
    		{
    			TIMER_INFO("open /dev/rtc0  failed!");
    			return -1;
    		}
    	}
    	else
    	{
    		fd = open("/dev/rtc0", O_WRONLY);
    		if (fd < 0)
    		{
    			TIMER_INFO("open /dev/rtc0  failed!");
    			return -1;
    		}
    	}
    
    	gettimeofday(&tv, NULL);
    	/* Prepare tm_time */
    		
    	localtime_r((time_t*)&tv.tv_sec, &tm_time);
    	tm_time.tm_isdst = 0;
    	
    	ioctl(fd, RTC_SET_TIME, &tm_time);
    	
    	close(fd);
    	return 0;
    	//system("hwclock -w");
    }


    系统时钟调整与硬件时钟一致:

    //system("hwclock -s")

    int SyncHwClockToSystem(void)
    {
    
    	struct timeval tv;
    	struct timezone tz;
    	struct tm tm_time;
    	int fd;
    	int ret = 0;
    
    	gettimeofday(&tv, &tz);
    
    	ret = access("/dev/rtc1",F_OK);
    	if(0 == ret)
    	{
    		fd = open("/dev/rtc1", O_WRONLY);//只写
    		if (fd < 0)
    		{
    			TIMER_INFO("open /dev/rtc0  failed!");
    			return -1;
    		}
    	}
    	else
    	{
    		fd = open("/dev/rtc0", O_WRONLY);
    		if (fd < 0)
    		{
    			TIMER_INFO("open /dev/rtc0  failed!");
    			return -1;
    		}
    	}
    
    	memset(&tm_time, 0, sizeof(tm_time));
    	ioctl(fd, RTC_RD_TIME, &tm_time);
    	tm_time.tm_isdst = -1; /* "not known" */
    
    	close(fd);
    
    	tv.tv_sec = mktime(&tm_time);
    	tv.tv_usec = 0;
    	if (settimeofday(&tv, &tz))
    	{
    		TIMER_INFO("settimeofday failed!");
    		return -1;
    	}
    
    	return 0;
    	//system("hwclock -s");
    }

  • 相关阅读:
    自动化测试框架搭建:Pytest+request+Allure
    免密登录
    Python中函数、方法的区别
    Python中的深浅拷贝
    Linux日志中如何查找关键字及其前后的信息
    kibana7.4.2配置文件
    Java消息队列——JMS概述
    Bootstrap学习(一):Bootstrap简介
    设计模式:简单工厂模式
    Java内存模型
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6172362.html
Copyright © 2011-2022 走看看