社区
Linux/Unix社区
帖子详情
怎样在 毫秒 的量级上修改系统的时间?
qdzhulf
2004-03-15 05:40:14
请问,怎样在 毫秒 的量级上修改系统的时间?即精确到毫秒.
多谢!
...全文
112
6
打赏
收藏
怎样在 毫秒 的量级上修改系统的时间?
请问,怎样在 毫秒 的量级上修改系统的时间?即精确到毫秒. 多谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxywh
2004-03-16
打赏
举报
回复
例子:
unsigned char SetSysTime(struct NetData *net_data)
{
unsigned char h_year,l_year,month,day,hour,minute,second;
struct timeval tv;
struct timezone tz;
struct tm *p;
time_t timep,timeq;
int ret;
ret = IsTime(net_data->Data);
if (ret == FALSE)
{
printf("The net time data error.\n");
return -1;
}
memcpy(&h_year,net_data->Data,1);
memcpy(&l_year,(net_data->Data+1),1);
memcpy(&month,(net_data->Data+2),1);
memcpy(&day,(net_data->Data+3),1);
memcpy(&hour,(net_data->Data+4),1);
memcpy(&minute,(net_data->Data+5),1);
memcpy(&second,(net_data->Data+6),1);
ret = gettimeofday(&tv,&tz);
if (ret == -1)
{
printf("Gettimeofday error:%s\n",strerror(errno));
return 0;
}
ret = time(&timep);
if (ret == (time_t)-1)
{
printf("Time error:%s\n",strerror(errno));
return 0;
}
/*get local current time and date*/
p = localtime(&timep);
p = (struct tm *)alloca(sizeof(struct tm));
p->tm_year = (h_year*256 + l_year) - 1900;
p->tm_mon = month - 1;
p->tm_mday = day;
p->tm_hour = hour;
p->tm_min = minute;
p->tm_sec = second;
timeq = mktime(p);
tv.tv_sec = (long)timeq;
ret = settimeofday(&tv,&tz);
if (ret == -1)
{
printf("Settimeofday error:%s\n",strerror(errno));
return 0;
}
return 1;
}
注:该函数只精确到秒,只要略作修改,是可以精确到毫秒的。
timeval结构定义:
struct timeval
{
long tv_sec; //秒
long tv_usec; //微秒
};
blh
2004-03-16
打赏
举报
回复
#include <stdio.h>
#include <errno.h>
#include <time.h>
#include <sys/types.h>
#include <sys/time.h>
int set_date(struct tm *p_tm, unsigned long ms)
{
time_t when;
struct timeval tv;
when = mktime(p_tm);
if (when == -1)
return -1;
tv.tv_sec = when;
tv.tv_usec = ms;
return settimeofday(&tv, (struct timezone *)0);
}
int main()
{
struct tm tm;
// 1976年10月26日 11:15:0.10
memset(&tm, 0, sizeof(tm));
tm.tm_sec = 0;
tm.tm_min = 14;
tm.tm_hour = 14;
tm.tm_mday = 15;
tm.tm_mon = 6;
tm.tm_year = 2003 - 1900;
if (set_date(&tm, 10) == -1)
perror("set_date");
return 0;
}
blh
2004-03-16
打赏
举报
回复
不好意思看错问题了,:P
「已注销」
2004-03-15
打赏
举报
回复
有没有直接的系统调用可以这样更改时间啊?
jack_wq
2004-03-15
打赏
举报
回复
使用gettimeofday()可以直接实现!
blh
2004-03-15
打赏
举报
回复
#include <sys/time.h>
#include <errno.h>
// 最小精度10ms
void ms_sleep(unsigned long ms)
{
struct timeval tv;
tv.sec = ms / 1000;
tv.usec = (ms % 1000) * 1000;
while ((-1 == select(0, 0, 0, 0, &tv)) && (EINTR == errno);
}
ClickHouse--day02--企业最佳实战.pdf
ClickHouse企业实践---具体案例
ES中百亿数据如何
毫秒
级返回?
前言 近年来公司业务迅猛发展,数据量爆炸式增长,随之而来的的是海量数据查询等带来的挑战,我们需要数据量在十亿,甚至百亿级别的规模时依然能以秒级甚至
毫秒
级的速度返回,这样的话显然离不开搜索引擎的帮助,在搜索引擎中,ES(ElasticSearch)毫无疑问是其中的佼佼者,连续多年在 DBRanking 的搜索引擎中评测中排名第一,也是绝大多数大公司的首选,那么它与传统的 DB 如 MySQL 相比有啥优势呢,ES 的数据又是如何生成的,数据达到 PB 时又是如何保证 ES 索引数据的实时性以更好地满足业务的
计算机网络的
时间
,计算机网络
时间
同步技术原理介绍
1.前言由计算机网络
系统
组成的分布式
系统
,若想协调一致进行:IT行业的“整点开拍”、“秒杀”、“Leader选举”,通信行业的“同步组网”之类业务处理,
毫秒
级甚至微秒级的
时间
同步是重要基础之一。2.术语描述2.0 世界时世界时UT,可以简单理解为按照地球自转一周来计量24小时的
时间
标准,由于地球自转速率的变化,世界时的秒长会有微小的变化,每天的快慢可以达到千分之几秒。2.1 TAI
时间
世界时不准,...
大数据: 知乎1.3万亿条数据如何做到
毫秒
级响应
知乎,在古文中意为“你知道吗?”,它是中国的Quora:一个问答网站,其中各种问题由用户社区创建,回答,编辑和组织。作为中国最大的知识共享平台,知乎平台目前拥有2.2亿注...
一秒等于多少
毫秒
_新知|一秒有多长?你以为的“一瞬间”有多快?
来源:交汇点新闻客户端交汇点讯 寒暑易节,物换星移,宇宙中一切物质的起源与消失,世界上一切事物的诞生与灭亡,都与
时间
息息相关。“嘀嗒嘀嗒”,在分针与秒针不断交错间,
时间
一秒一秒流逝。然而,一秒到底有多长?我们平时所说的“
时间
”是如何测量的?如何捕捉飞秒数
量级
的瞬间?司空见惯的“
时间
”背后隐藏着许多鲜为人知的“秘密”。一秒到底有多长当你一字一句阅读到这里时,
时间
已经流逝了20秒。作为最常用的
时间
单位...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章