使用C语言在linux环境下获得微秒级时间
#include
#include
int gettimeofday(struct timeval*tv, struct timezone *tz);
函数说明:
gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。时间是从公元 1970 年1 月1 日的UTC 时间从0 时0 分0 秒算起到现在所经过的时间。
其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果:
struct timezone{
int tz_minuteswest;/*格林威治时间往西方的时差*/
int tz_dsttime;/*DST 时间的修正方式*/
}
timezone 参数若不使用则传入NULL即可。
而结构体timeval的定义为:
struct timeval{
long int tv_sec; // 秒数
long int tv_usec; // 微秒数
}
#include
#include
#include
#include
#include
#include
using namespace std;
string fa_getSysTime()
{
struct timeval tv;
gettimeofday(&tv,NULL);
struct tm* pTime;
pTime = localtime(&tv.tv_sec);
charsTemp[30] = {0};
snprintf(sTemp, sizeof(sTemp), "%04d%02d%02d%02d%02d%02d%03d%03d", pTime->tm_year+1900, \
pTime->tm_mon+1, pTime->tm_mday, pTime->tm_hour, pTime->tm_min, pTime->tm_sec, \
tv.tv_usec/1000,tv.tv_usec%1000);
return (string)sTemp;
}
int main()
{
cout<< "当前时间:" << fa_getSysTime() << endl;
return 0
}
另有usleep函数,time函数相对于gettimeofday就好比sleep函数相对usleep函数。
#include
usleep(time);// 百万分之一秒