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操作系统的廉价的机会。

阅读剩余
THE END