您好,登錄后才能下訂單哦!
gettimeofday函數(shù)是Linux系統(tǒng)下標(biāo)準(zhǔn)C函數(shù),在Windows下使用會(huì)返回-1錯(cuò)誤
Linux調(diào)用方式:
#include <stdio.h>
#include <sys/time.h> //添加頭文件
int64_t getCurrentTime() //直接調(diào)用這個(gè)函數(shù)就行了,返回值最好是int64_t,long long應(yīng)該也可以
{
struct timeval tv;
gettimeofday(&tv,NULL); //該函數(shù)在sys/time.h頭文件中
return ((long long)tv.tv_sec) 1000 + tv.tv_usec / 1000;
}
注意:2038年以后,由于tv.tv_sec超出32位整型,所以就會(huì)溢出,保險(xiǎn)的做法是進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換
Windows系統(tǒng)調(diào)用getimeofday,會(huì)返回-1錯(cuò)誤??梢跃帉?xiě)一個(gè)函數(shù)替代該函數(shù)
#include <time.h>
#ifdef WIN32
#include <windows.h>
#else
include <sys/time.h>
#endif
#ifdef WIN32
int gettimeofday(struct timeval tp, void tzp)
{
time_t clock;
struct tm tm;
SYSTEMTIME wtm;
GetLocalTime(&wtm);
tm.tm_year = wtm.wYear - 1900;
tm.tm_mon = wtm.wMonth - 1;
tm.tm_mday = wtm.wDay;
tm.tm_hour = wtm.wHour;
tm.tm_min = wtm.wMinute;
tm.tm_sec = wtm.wSecond;
tm. tm_isdst = -1;
clock = mktime(&tm);
tp->tv_sec = clock;
tp->tv_usec = wtm.wMilliseconds 1000;
return (0);
}
#endif
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。