时间设置settimeofday

 

void settimeofday()
{
	struct timeval tv;
	struct timezone tz;
	gettimeofday(&tv, &tz);

    // 根据时间戳设置时间	
    tv.tv_sec =time(NULL);

	printf("tv_sec:%d,tv_usec:%d.\n",tv.tv_sec,tv.tv_usec);
	printf("tz_minuteswest:%d,tz_dsttime:%d.\n",tz.tz_minuteswest,tz.tz_dsttime);
	
	if(settimeofday(&tv,&tz) == -1)
	{
		if(errno == EPERM)
			printf("The calling process has insufficient privilege to call settimeofday()\n");
		else if( errno == EINVAL)
			printf("Timezone (or something else) is invalid.\n");
		else if(errno == EFAULT)
			printf("One of tv or tz pointed outside the accessible address space.\n");
		else
			printf("Unknow Error.\n");
	}
}


void set_sys_time()
{
	struct timeval time;
	struct tm *date;

    //获取系统时间戳
    gettimeofday(&time,NULL);
	date = gmtime(&time.tv_sec);
	date->tm_sec = clock_syn.msec_t1/1000;//替换秒
	time.tv_sec = mktime(date);//换算为秒数

    time.tv_usec = (__suseconds_t)(clock_syn.msec_t1%1000*1000);
    //更新系统时间
    settimeofday(&time,NULL);
    //将系统时间同步到硬件时钟
    //system("hwclock -w");
}

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值