c语言/c++中获得毫秒时间_信息安全服务/xx/网络渗透与检测/攻击/防守 ...

以下提供几种方案,主要是针对c语言

1.windows的api,GetSystemTime (别说.c的程序没法引用api哟)。

typedef struct _SYSTEMTIME {
WORD ;
WORD ;
WORD ;
WORD ;
WORD ;
WORD ;
WORD ;
WORD ;
} SYSTEMTIME,
*PSYSTEMTIME;

2._ftime64   【注意,这个只有vs2003以上才能编译,vc 6不知道long long,故无法编译通过】

msdn例子:

#include <stdio.h>
#include <sys/timeb.h>
#include <time.h>

int main( void )
{
   struct __timeb64 timebuffer;
   char *timeline;

   _ftime64( &timebuffer );
   timeline = _ctime64( & ( timebuffer.time ) );

   printf( "The time is %.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20] );
}

其他方法:

在IA32体系结构中,CPU内部有一个被称为“时间戳(TimeStamp)”的64位无符号数计数器,存储自cpu上电以来所经过的时钟周期数。
有两种方法:
1:WIN32中有一个QueryPerformanceCouter函数读取的就是一个64位的计数器
2:使用CPUID和RDTSC汇编指令

{dy}种方法就不写了,楼主可以参考msdn,第二种方法的代码如下:

#include<stdio.h>
int main()
{
unsigned int cycle,i;
__asm
{
CPUID
RDTSC
mov cycle,eax
}
for(i=0;i<10000;i++)
;
__asm
{
CPUID
RDTSC
sub eax,cycle
mov cycle,eax
}
printf("the program duration cycle = %d ",cycle);
return 0;
}

4.linux下用

gettimeofday



郑重声明:资讯 【c语言/c++中获得毫秒时间_信息安全服务/xx/网络渗透与检测/攻击/防守 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——