linux库函数 gettimeofday() localtime 使用demo

server/2024/9/23 9:29:48/

1. 基本说明

/*  linux库函数 gettimeofday
1. 头文件#include <sys/time.h>
2. 函数形式int gettimeofday(struct timeval *tv, struct timezone *tz);
3. 返回值Returns 0 on success, or –1 on error
4. 参数tv:虽然tv_usec字段提供微秒级精度,但它返回的值的精度取决于架构相关的实现。在现代x86-32系统上,gettimeofday()确实提供了微秒级的精度。tz:gettimeofday()的tz参数是一个历史产物。在较旧的UNIX实现中,它用于检索系统的时区信息。该参数现已过时,应始终指定为NULL。
5. 结构体
struct timeval {time_t tv_sec;       // Seconds since 00:00:00, 1 Jan 1900suseconds_t tv_usec; // Additional microseconds (long int) 
};*//*  linux库函数 localtime
1. 头文件#include <time.h>
2. 函数形式struct tm *localtime(const time_t *timep);
3. 返回值成功:Both return a pointer to a statically allocated broken-downtime structure on success, 失败: NULL on error
4. 参数timep: Seconds since 00:00:00, 1 Jan 1900
5. 结构体struct tm {int tm_sec; // Seconds (0-60) int tm_min; // Minutes (0-59) int tm_hour; // Hours (0-23) int tm_mday; // Day of the month (1-31) int tm_mon; // Month (0-11) int tm_year; // Year since 1900 int tm_wday; // Day of the week (Sunday = 0)int tm_yday; // Day in the year (0-365; 1 Jan = 0)int tm_isdst; // Daylight saving time flag> 0: DST is in effect;= 0: DST is not effect;< 0: DST information not available /
};*/

2.  代码demo

#include <sys/time.h>
#include <iostream>/*  linux库函数 gettimeofday
1. 头文件#include <sys/time.h>
2. 函数形式int gettimeofday(struct timeval *tv, struct timezone *tz);
3. 返回值Returns 0 on success, or –1 on error
4. 参数tv:虽然tv_usec字段提供微秒级精度,但它返回的值的精度取决于架构相关的实现。在现代x86-32系统上,gettimeofday()确实提供了微秒级的精度。tz:gettimeofday()的tz参数是一个历史产物。在较旧的UNIX实现中,它用于检索系统的时区信息。该参数现已过时,应始终指定为NULL。
5. 结构体
struct timeval {time_t tv_sec;       // Seconds since 00:00:00, 1 Jan 1900suseconds_t tv_usec; // Additional microseconds (long int) 
};*//*  linux库函数 localtime
1. 头文件#include <time.h>
2. 函数形式struct tm *localtime(const time_t *timep);
3. 返回值成功:Both return a pointer to a statically allocated broken-downtime structure on success, 失败: NULL on error
4. 参数timep: Seconds since 00:00:00, 1 Jan 1900
5. 结构体struct tm {int tm_sec; // Seconds (0-60) int tm_min; // Minutes (0-59) int tm_hour; // Hours (0-23) int tm_mday; // Day of the month (1-31) int tm_mon; // Month (0-11) int tm_year; // Year since 1900 int tm_wday; // Day of the week (Sunday = 0)int tm_yday; // Day in the year (0-365; 1 Jan = 0)int tm_isdst; // Daylight saving time flag> 0: DST is in effect;= 0: DST is not effect;< 0: DST information not available /
};*/using namespace std;int main(int argn, char* argv[])
{cout << "-------hello gettimeofday()----------" << endl;/* Parameters init */bool process_control = false;struct timeval time_val = {0, 0};/* get time from kernal*/int gettimeofday_res = gettimeofday(&time_val, nullptr);if(0 == gettimeofday_res){   process_control = true;  // can do next actioncout << "> Call gettimeofday successful!" << endl;cout << "time_val.tv_sec:" << time_val.tv_sec << endl;cout << "time_val.tv_usec:" << time_val.tv_usec << endl;}else{   process_control = false; // can not do next actioncout << "> Call gettimeofday fail!" << endl;}/* Store time in struct tm format */if(true == process_control){struct tm *p_localtime_res = localtime(&time_val.tv_sec);/* Set localtime result to tm_val */if(nullptr != p_localtime_res){cout << "> Convert time_t to tm formart successful" << endl;struct tm tm_val = *p_localtime_res;cout << "year: " << tm_val.tm_year + 1900 << endl;cout << "month: " << tm_val.tm_mon << endl;cout << "day: " << tm_val.tm_mday << endl;cout << "h: " << tm_val.tm_hour << endl;cout << "min: " << tm_val.tm_min << endl;cout << "sec: " << tm_val.tm_sec << endl;}else{cout << "> Convert time_t to tm formart fail" << endl;}}return 0;
}

3. Makefile

TARGET := app
#src file
SRC := gettimeofday_demo.cppall:$(TARGET)@echo "make successfull"
$(TARGET): $(SRC)@echo $(SRC)g++ -std=c++11 $^ -I. -o $@clean:rm $(TARGET).PHONY:all,clean

4. 结果

xuehy@ubuntu:~/code/lib_study/lib_linux/05_time$ ./app
-------hello gettimeofday()----------
> Call gettimeofday successful!
time_val.tv_sec:1719135524
time_val.tv_usec:896568
> Convert time_t to tm formart successful
year: 2024
month: 5
day: 23
h: 18
min: 38
sec: 44


http://www.ppmy.cn/server/53093.html

相关文章

如何使用SQL工具批量执行SQL文件?(以MySQL和SQLynx为例)

目录 1. 配置MySQL数据源 2. 打开 SQL 文件 3. 执行 SQL 文件 4. 检查执行结果 5. SQL文件示例 6. 注意事项 7. 总结 在现代数据库管理和操作中&#xff0c;批量执行 SQL 文件在 MySQL 中显现出其巨大的价值和不可替代的作用。通过将多个 SQL 语句集成在一个文件中进行批…

力扣(2024.06.23)

1. 62——不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。问总共有多少条不同的路径&a…

转转游戏MQ重构:思考与心得之旅

文章目录 1 背景1.1 起始之由1.2 重构前现状1.3 问题分析 2 重构2.1 目标2.2 制定方案2.2.1 架构设计2.2.2 实施计划2.2.3 测试计划 2.3 部分细节设计 3. 总结 1 背景 游戏业务自 2017 年启航&#xff0c;至今已近乎走过七个春秋&#xff0c;历经漫长岁月的发展&#xff0c;不…

典型传感器简介及驱动安装

双目视觉传感器 Indemind 传感器简介 INDEMIND M1 是专为开发者提供的一款硬件&#xff0c;采用“双目摄像头IMU”多传感器融合架构与 微秒级时间同步机制&#xff0c;为视觉 SLAM 研究提供精准稳定数据源&#xff0c;以满足 SLAM 研究、导航及 避障开发、视觉动作捕捉开发、…

访问网站时IP被屏蔽是什么原因?

在互联网使用中&#xff0c;有时我们可能会遇到访问某个网站时IP地址被屏蔽的情况。IP地址被网站屏蔽是一个相对常见的现象&#xff0c;而导致这种情况的原因多种多样&#xff0c;包括恶意行为、违规访问等。本文将解释IP地址被网站屏蔽的常见原因&#xff0c;同时&#xff0c;…

鸿蒙期末项目(完结)

两天仅睡3个小时的努力奋斗之下&#xff0c;终于写完了这个无比拉跨的项目&#xff0c;最后一篇博客总体展示一下本项目运行效果兼测试&#xff0c;随后就是答辩被同学乱沙&#xff08;悲 刚打开软件&#xff0c;会看到如下欢迎界面&#xff0c;介绍本app的功能和优点 随后我们…

【pytorch08】拼接与拆分

1.拼接与拆分 CatStackSplitChunk 2.Cat 有两张成绩单 [class1-4,students,scores] [class5-9,students,scores]’ 要把这两个成绩单合并在一起 如何理解该行为 注意&#xff1a;班级情况中 A的tensor是[4,32,8],B的tensor是[5,32,8]如果我们是在0维上进行拼接&#xff0c;要…