获取当前的时间的秒数和微秒数本方法需要用到 gettimeofday() 函数,该函数需要引入的头文件是 <sys/time.h> 。
函数说明
int gettimeofday (struct timeval * tv, struct timezone * tz)
返回值:该函数成功时返回0,失败时返回-1
参数
struct timeval{
long tv_sec; //秒
long tv_usec; //微秒
};
struct timezone
{
int tz_minuteswest; //和Greenwich 时间差了多少分钟
int tz_dsttime; //日光节约时间的状态
};
示例
#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
struct timeval tv;
gettimeofday(&tv, NULL);
printf("second: %ld\n", tv.tv_sec); // 秒
printf("millisecond: %ld\n", tv.tv_sec * 1000 + tv.tv_usec / 1000); // 毫秒
printf("microsecond: %ld\n", tv.tv_sec * 1000000 + tv.tv_usec); // 徽秒
sleep(3); // 让程序休眠3秒
printf("---------------------sleep 3 second-------------------\n");
gettimeofday(&tv, NULL);
printf("second: %ld\n", tv.tv_sec); // 秒
printf("millisecond: %ld\n", tv.tv_sec * 1000 + tv.tv_usec / 1000); // 毫秒
printf("microsecond: %ld\n", tv.tv_sec * 1000000 + tv.tv_usec); // 徽秒
return 0;
}
运行结果:
second: 1554963664
millisecond: 1554963664748
microsecond: 1554963664748007
---------------------sleep 3 second-------------------
second: 1554963667
millisecond: 1554963667748
microsecond: 1554963667748621
whatday 发布了57 篇原创文章 · 获赞 550 · 访问量 489万+ 关注