导航:首页 > 操作系统 > linux获取时间函数

linux获取时间函数

发布时间:2023-01-30 10:02:32

linux中的time()怎么实现的

应该是读取CMOS芯片中的值获取时间,CMOS芯片中存了系统时间

⑵ linux里面关于time,localtime等函数的一些问题

首先看看time
的原型:
time_t
time(time_t
*calptr);
//其说明是:若成功则返回时间值,否则返回-1。时间值总是作为
函数值
返回。如果参数不为空(NULL),则时间值也存放在由calptr指向的单元内。(看似的确多余的,仅仅是看似~~)
第二个函数的原型:
struct
tm
*
localtime
(const
time_t
*calptr);//看到了把~参数是指针,所以必须要传递地址,&t取地址。
(顺带提一下~localtime是将
日历时间
转换成本地时间,会考虑到本地时区和
夏时制
标志,而与此类似的一个函数gmtime则是将日历时间转换成
国际标准时间

⑶ 如何在Windows下编制与Linux系统对应的C语言gettimeofday函数

实际上,windows和Linux获得时间的机制是不一样的,不是靠代码就能够完成。想在windows下实现gettimeofday,其实就是windows取时间的方式,还有Linux提供了渐进修改时间的接口adjtime(),而windows就没有。
精度达到微妙是不可能的,因为计算机本身的时间片10-15ms左右,不管是Linux和windows,因此不可能达到那个精度。
另外系统时间和RTC时间也是不同的概念,当然读RTC时间成本很高,但是准确,可以用汇编或具体的库来读,但是只是一瞬间的参考,按长远来说也是很不稳定的,做多10-15ms精度,当然,你可以自己用代码时间一个时间估计的过程,用算法来弥补,给出误差分析,但这个是数学了。

⑷ 在Linux下, 用C如何设置日期

1.时间表示

在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令的输出结果.这个时候我们可以使用下面两个函数:

#include
time_t time(time_t *tloc);
char *ctime(const time_t *clock);

time函数返回从1970年1月1日0点以来的秒数.存储在time_t结构之中.不过这个函数的返回值对于我们来说没有什么实际意义.这个时候我们使用第二个函数将秒数转化为字符串. 这个函数的返回类型是固定的:一个可能值为.Thu Dec7 14:58:59 2000 这个字符串的长度是固定的为26.

2.时间的测量
有时候我们要计算程序执行的时间.比如我们要对算法进行时间分析.这个时候可以使用下面这个函数. #include int gettimeofday(struct timeval *tv,struct timezone *tz); strut timeval { long tv_sec; /* 秒数 */ long tv_usec; /* 微秒数 */ }; gettimeofday将时间保存在结构tv之中.tz一般我们使用NULL来代替. #include #include #include void function() { unsigned int i,j; double y; for(i=0;i<1000;i++) for(j=0;j<1000;j++) y=sin((double)i); } main() { struct timeval tpstart,tpend; float timeuse; gettimeofday(&tpstart,NULL); function(); gettimeofday(&tpend,NULL); timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ tpend.tv_usec-tpstart.tv_usec; timeuse/=1000000; printf("Used Time:%f\n",timeuse); exit(0); }

这个程序输出函数的执行时间,我们可以使用这个来进行系统性能的测试,或者是函数算法的效率分析.在我机器上的一个输出结果是: Used Time:0.556070

⑸ linux系统下,php设置时区和调用时间函数问题,服务器是nginx.

date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”

是区分大小写的,还需要php中关闭安全模式,或允许date_default_timezone_set执行

⑹ linux c strptime函数

char *strptime(const char *restrict buf, const char *restrict format, struct tm *restrict tm);
buf指向一个字符串格式的时间,函数将这个时间用format表示的格式解析,存放到tm中去
例子:
strptime("6 Dec 2001 12:33:45", "%d %b %Y %H:%M:%S", &tm);
返回值:
解析正确返回最后解析字符的下一个字符的地址,失败返回NULL
参考
http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html
看你的写法,是你理解错了.
tm中的年是时间与格林尼治时间的差表示的

⑺ Linux系统下date函数的用法

我们在Linux系统中使用 date --help 可打印出如下信息:

默认情况下,日期的数字区域以0 填充,以下可选标记可以跟在"%"后:

在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字。

作为一个可选的修饰声明,它可以是E,在可能的情况下使用本地环境关联的
表示方式;或者是O,在可能的情况下使用本地环境关联的数字符号。

date是Linux系统里自带的一个系统命令,用来显示当前的系统时间,不过默认显示的结果里包括很多信息,特别是做为文件名输出时,不是很方便,好在date命令里包含格式化输出的选项。

我们一般使用 date -s 命令来修改系统时间

比如将系统时间设定成2011年7月13日的命令:date -s 07/13/2011

将系统时间设定成11点12分0秒的命令:date -s 11:12:00

注意:这里说的是系统时间,是linux由操作系统维护的。

在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行 date -s 后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行 clock –w 命令,强制把系统时间写入CMOS。

⑻ 求帮忙写个按格式设置Linux系统时间的函数

为什么一定要这样呢?

是有这个需求还是说必需要这样?

linux下设置时间可用函数mktime来完成

它所需要的是一个struct tm *的指针

man一下mktime就会看到struct tm结构体的组成为

structtm{
inttm_sec;/*Seconds(0-60)*/
inttm_min;/*Minutes(0-59)*/
inttm_hour;/*Hours(0-23)*/
inttm_mday;/*Dayofthemonth(1-31)*/
inttm_mon;/*Month(0-11)*/
inttm_year;/*Year-1900*/
inttm_wday;/*Dayoftheweek(0-6,Sunday=0)*/
inttm_yday;/*Dayintheyear(0-365,1Jan=0)*/
inttm_isdst;/*Daylightsavingtime*/
};

这就里面的参数已经很详尽也很简单了

所以不需要你再去做其它的事情,只要填充这个结构就可以了

当然如果你非要用以上概述的方法来完成任务的其实也很简单

只需要将以上的内容填充到这个结构体然后再调用mktime函数就可以了

下面我给个简单的实现可以参考下,然后根据自己的实际情况再做些修改

voidsettime(unsignedchar*buf,intbuf_len)
{
structtmt;
intyear=0;

memset(&t,0,sizeof(t));
memcpy(&year,buf,2);//前两个字节为年份
year-=1900;//structsm结构中年份是以1900年开始计算的

t.tm_year=year;
t.tm_mon=(int)buf[2]-1;
t.tm_mday=(int)buf[3];
t.tm_hour=(int)buf[4];
t.tm_min=(int)buf[5];
t.tm_sec=(int)buf[6];

if(mktime(&t)==-1)//设置时间
perror("mktime");
}

⑼ linux时间戳转换成标准时间用什么函数

可以用date的-d参数,致于函数可以自己写一个:

date命令可以将标准的时间格式转换成unix时间戳

例如:

#date-d'2014-11-2413:10'+%s
1416805800

同样也可以使用date命令将unix时间戳转换成标准的时间格式

例如:

#date-d'1970-01-01UTC1416805800seconds'
MonNov2413:10:00CST2014

⑽ linux怎么用c获取当前时间

Linux C编程获取当前时间用time这个函数,time函数会返回一个time_t类型的时间戳(这个time_t类型实际上是一个长整型,定义在time.h头文件中)。time函数的函数原型是这样的:
time_t time(time_t *tloc);
使用time函数需要包含time.h头文件:
#include <time.h>
调用time函数的代码是这样的:
time_t t;
t=time((time_t *) 0);
因为time函数参数的作用和返回值一样,只是用于接收时间戳,所以这里调用time函数可以传入一个空指针,表示只用它的返回值,不用指针参数来接收时间戳。
因为time函数只是返回一个时间戳,如果想打印直观的时间信息,可以把刚才的time_t作为参数调用ctime函数,ctime函数会返回一个字符串,ctime函数的调用是这样的:
printf("The time and date is: %s", ctime(&t));
t就是刚才调用time函数返回的time_t类型变量。

阅读全文

与linux获取时间函数相关的资料

热点内容
app服务端java源码 浏览:796
电脑用文件夹玩大型游戏 浏览:254
安卓耳塞失灵怎么办 浏览:763
华三交换机保存命令 浏览:605
命令方块怎么调键盘 浏览:841
不把密码存在服务器上怎么办 浏览:398
怎么让指令方块的命令消失 浏览:543
用单片机做plc 浏览:404
云服务器进入子目录命令 浏览:795
服务器机柜如何配电 浏览:578
怎么删除iphone资源库里的app 浏览:940
pdf鱼 浏览:648
单片机pcf8591什么作用 浏览:805
sql命令学院 浏览:283
加密软件在电脑那个盘 浏览:988
android获取外部存储 浏览:573
怎么查自己家的服务器地址 浏览:858
编程c语言工作好不好 浏览:569
单片机焊接地怎么连接 浏览:694
游戏源码怎么抓 浏览:216