linux获取毫秒 linux恢复出厂命令
今天给各位分享linux获取毫秒的知识,其中也会对linux恢复出厂命令进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
unix下获取精确到毫秒的系统的时间
C语言如何获得精确到毫秒的时间
在做测试或性能优化时,经常要知道程序运行的时间,在Linux系统可以使用time命令来计算程序运行运行所消耗的时间,能精确到毫秒,如果要精确到代码块或某个操作运行时所消耗的时间,time命令就不给力了。如果对时间的精度要求不高的话,可以调用标准C的接口time来得到开始和结束的时间,再调用difftime接口来计算时间差,精度是秒,代码如下所示:
time.c
如果要让程序休眠3秒,Windows使用Sleep(3000),Linux使用sleep(3),即Windows的Sleep接口的参数的单位是毫秒,Linux的sleep接口的参数的单位是秒。如果需要精确到毫秒,以上程序就发挥不了作用,如果在Java要达到这要求就很简单了,代码如下所示:
Time.java
通过Google找了一些资料后,发现C语言里没有标准的接口可以获得精确到毫秒的时间,都会调用到与操作系统相关的API,下面会分别介绍在Linux和Windows系统下的多种实现方法,希望对大家有帮助。
使用gettimeofday接口:
gettimeofday.c
gettimeofday能得到微秒数,比毫秒还要更精确。
使用ftime接口:
ftime.c
使用GetTickCount接口:
下载:
GetTickCount.c
Windows系统下有些编译器使用printf输出64位整数参数要使用%I64d,比如VC。
使用QueryPerformanceX接口:
QueryPerformance.c
使用GetSystemTime接口:
GetSystemTime.c
这种方法没给出计算时间差的实现,只给出如何用GetSystemTime调用得到当前时间,计算时间差比较简单,根据年、月、日、时、分秒和毫秒计算出一个整数,再将两整数相减即可。
以上是通过Google找到一些用C语言获得精确到毫秒的实现方法,对比Linux和Windows的方法,发现两个系统的API命名很不一样,Linux接口名要么都是小写要么使用下划线(_)来分隔单词,而Windows接口名中的单词首字母大写。
linux下,记录响应时间的脚本,精确到毫秒ms
gettimeofday(取得目前的时间)
相关函数
time,ctime,ftime,settimeofday
表头文件
#include<sys/time.h>
#include<unistd.h>
定义函数
int gettimeofday( struct timeval* tv, struct timezone* tz)
函数说明
gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中。
timeval结构定义为:
struct timeval{
long tv_sec;/*秒*/
long tv_usec;/*微秒*/
};
timezone结构定义为:
struct timezone{
int tz_minuteswest;/*和Greenwich时间差了多少分钟*/
int tz_dsttime;/*日光节约时间的状态*/
};
上述两个结构都定义在/usr/include/sys/time.h。tz_dsttime所代表的状态如下
DST_NONE/*不使用*/
DST_USA/*美国*/
DST_AUST/*澳洲*/
DST_WET/*西欧*/
DST_MET/*中欧*/
DST_EET/*东欧*/
DST_CAN/*加拿大*/
DST_GB/*大不列颠*/
DST_RUM/*罗马尼亚*/
DST_TUR/*土耳其*/
DST_AUSTALT/*澳洲(1986年以后)*/
返回值
成功则返回0,失败返回-1,错误代码存于errno。附加说明EFAULT指针tv和tz所指的内存空间超出存取权限。
范例
#include<sys/time.h>
#include<unistd.h>
main(){
struct timeval tv;
struct timezone tz;
gettimeofday(&tv,&tz);
printf(“tv_sec;%d\n”, tv,.tv_sec);
printf(“tv_usec;%d\n”,tv.tv_usec);
printf(“tz_minuteswest;%d\n”, tz.tz_minuteswest);
printf(“tz_dsttime,%d\n”,tz.tz_dsttime);
}
执行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0
linux获取毫秒linux取毫秒
sleep命令使用教程?
使用权限:所有使用者
使用方式:sleepnumber
说明:sleep可以用来将目前动作延迟一段时间
参数说明:
--help:显示辅助讯息
--version:显示版本编号
number:时间长度,后面可接s、m、h或d
其中s为秒,m为分钟,h为小时,d为日数
例子:
显示目前时间后延迟1分钟,之后再次显示时间:
date;sleep1m;date
这个命令更多应用于shell脚本编程里和程序里
如下面的一段程序:
应用程序:
#includesyswait.h>
usleep(n)//n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#includelinux/delay.h>
mdelay(n)//milliseconds其实现
#ifdefnotdef
#definemdelay(n)(
{unsignedlongmsec=(n);while(msec--)udelay(1000);})
#else
#definemdelay(n)(
(__builtin_constant_p(n)(n)=MAX_UDELAY_MS)?udelay((n)*1000):
({unsignedlongmsec=(n);while(msec--)udelay(1000);}))
#endif
调用asm/delay.h的udelay,udelay应该是纳秒级的延时
Dos:
sleep(1);//停留1秒
delay(100);//停留100毫秒
Windows:
Sleep(100);//停留100毫秒
Linux:
sleep(1);//停留1秒
usleep(1000);//停留1毫秒
每一个平台不太一样,最好自己定义一套跨平台的宏进行控制
秒还是微秒?关于延时函数sleep()
因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下)。觉得很奇怪,因为头儿也记得好像是微秒为单位的。所以就查了一下。
原来linux下的sleep函数原型为:
unsignedintsleep(unsignedintseconds);
而MFC中的Sleep函数原型为:
voidSleep(DWORDdwMilliseconds);
也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的sleep()函数是以微秒为单位的,sleep(1000);才是休眠1秒。原来如此啊。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:voidusleep(unsignedlongusec);当然,使用的时候别忘记#includesystem.h>哦。
另外值得一提的是,linux下还有个delay()函数,原型为externvoiddelay(unsignedintmsec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用delay(250)。
linux中shell如何实现毫秒级别的sleep?
可以用usleep
Linux计算机网络的基本功能?
Linux操作系统的基本功能1:编程能力
Linux产生于一群真正的黑客。尽管人们习惯于认为Linus是Linux的缔造者,在linux包含的数以千计的文件中,也有一个名为Credits的文件记录了主要的LinuxHacker们的姓名和电子邮件地址(这个列表中包含了100多个名字,世界各地的都有),但没有人说得清究竟有多少人参与了Linux的改进。这一游戏到今天并没有随着时间的推移而停止,相反却因为Linux的日益流行而爱好者甚众。
Linux操作系统的基本功能2:组网能力,Linux的组网能力非常强大,它的TCP/IP代码是最高级的.linux提供了对于当前的TCP/IP协议的完全支持,并且包括了对下一代Internet。
Linux操作系统的基本功能3:创新能力
“如果你总是使用微软的开发工具,你一生只能做个操作人员。”这话一点都不假.linux是自由软件,而自由软件和非自由软的区别在于:
1.自由软件是开放的,成千上万的人可以检查这个软件,快速地找到并修改其错误码。
2.最终用户可以按照自己的意愿自定义自由软件,有特殊需要的用户也可以完全按照他们认为合适的方式定制自己的Linux。
3.自由软件为了防止重复发明,通过共享源代码和思想来节省很多工作量。
Linux操作系统的基本功能4:UNIX能力
人们所以选择Linux的又一个重要原因是在于它的UNIX兼容性。由于Linux是一套自由软件,用户可以无偿地得到它及其源代码,无偿地获得大量的应用程序,还可以任意地修改和补充它们。这对用户学习、了解UNIX操作系统的内核非常有益。可以说Linux为广大用户提供了一个在家里学习和使用UNIX操作系统的廉价的机会。