C语言获取Linux系统精确时间

gettimeofday()函数的使用方法

1.函数原型

#include <sys/time.h>

int gettimeofday(struct timeval *tv, struct timezone *tz);

2.说明

gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中

3.结构体

struct  timeval{

   

       long  tv_sec;/*秒*/

       long  tv_usec;/*微妙*/

};

struct  timezone{

        int tz_minuteswest; /*和greenwich 时间差了多少分钟*/

        int tz_dsttime; /*DST的校正*/

}

复制代码

#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <string.h>
#define SIZE_OF_DATETIME 20
int sysUsecTime(char *pTime)
{
struct timeval tv;
struct timezone tz;
struct tm *p;
gettimeofday(&tv, &tz);
p = localtime(&tv.tv_sec);
sprintf(pTime,"%04d%02d%02d%02d%02d%02d%06ld",1900+p->tm_year, 1+p->tm_mon, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec, tv.tv_usec);
return 0;
}
int main ()
{
char strusecTime[SIZE_OF_DATETIME+1];
sysUsecTime(strusecTime);
printf("%s\n",strusecTime);
}

复制代码

 

posted @   Yueers  阅读(1054)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示