linux库函数 gettimeofday() localtime 使用demo

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.mzph.cn/bicheng/34451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录训练营第十七天 654最大二叉树 617合并二叉树 700二叉树搜索树的搜索

第一题&#xff1a; 原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 先找到这个数组中的最大值的下标。 然后将数组分为左右两个区间。 然后进行递归。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

审美进阶:7个小程序模板,助你提高设计感!

小程序是一种无需下载和安装即可使用的应用程序。小程序实现了应用程序“触手可及”的梦想。用户可以通过扫描或搜索打开应用程序。对于开发者来说&#xff0c;小程序也大大降低了开发成本。因此&#xff0c;越来越多的品牌争相制作小程序应用程序。本文将为您带来优秀的微信小…

安卓开发,获取本机手机号

用免费云服务器&#xff0c;三丰云记录安卓开发过程 以下是使用 Android 开发获取本机手机号的示例代码&#xff08;需要相关权限&#xff09;&#xff1a; java 复制 import android.content.Context; import android.content.pm.PackageManager; import android.os.Build; i…

ubuntu安装qtcreator与环境配置

sudo apt-get update sudo apt-get install gcc g # 两个编译器 sudo apt-get install build-essential # 编译c/c所需要的软件包 sudo apt-get install libgl1-mesa-dev # 安装mesa&#xff0c;Mesa 实际上是一个库&#xff0c;它实现了多种图形 API 规范 sudo apt-get insta…

[pycrypto][python]pycrypto所有whl文件下载地址汇总

PyCrypto是一个强大的Python加密库&#xff0c;专为密码学和数据安全提供了一系列工具。以下是关于PyCrypto的详细介绍&#xff1a; 项目简介&#xff1a; PyCrypto是一个广泛使用的开源Python库&#xff0c;它包含了多种经典和现代的加密算法&#xff0c;如AES&#xff08;高级…

IOPaint前后端框架

IOPaint 前后端框架 IOPaint 是一个图像修复工具&#xff0c;使用了先进的AI模型进行图像编辑。以下是其前后端所使用的框架&#xff1a; 前端框架 IOPaint 的前端使用了 Node.js 和 npm 进行依赖管理和构建。具体步骤如下&#xff1a; 克隆仓库并进入 web_app 目录&#x…

微信小程序设置时间缓存限制,一段时间后自动清除缓存内容

在原生微信小程序的 app.js 文件里的 onShow (生命周期回调-监听小程序启动或切前台)进行设置 在 uni-app 的 App.vue 文件里的 onShow (生命周期回调-监听小程序启动或切前台)进行设置 onShow() {// 存入初次打开小程序的时间&#xff0c;为后面清除缓存使用const dataExpir…

MFC结构体定义中使用CString类型

MFC的结构体定义中字符串可以使用CString类型&#xff1b; struct MyStruct {int x;int y;CString str; }; ...... void CTttView::OnDraw(CDC* pDC) {CTttDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;MyStruct m_…

React 组件通信-案例

React 组件通信是构建复杂应用的核心部分&#xff0c;涉及到不同组件之间的数据传递和事件处理。以下提供了相应的案例代码。 1. 父组件向子组件传递数据&#xff08;父传子&#xff09; 父组件通过 props 向子组件传递数据。 // ParentComponent.js import React from reac…

Android中的导航navigation的使用方式

在 Android 中&#xff0c;导航&#xff08;Navigation&#xff09;组件是一种用于管理应用内导航和屏幕之间关系的框架&#xff0c;它可以帮助你以一种更一致和结构化的方式管理应用的各个页面或片段&#xff08;Fragments&#xff09;之间的跳转和导航。下面是使用导航组件的…

vue配置中的process.env

项目中的.env开头的文件是否知道是干什么的呢 主要是为了区分测试环境还是生产环境env.development为测试环境 # 测试环境 NODE_ENV development VUE_APP_BASE_API http://xxxxxxxxx // 命名一定要以 VUE_APP_ 开头&#xff0c;要不然根本取不到 .env.production为生产环境…

C++ 内存分配可视化

GitHub - archibate/mallocvis: allocation visualization in svg graph 正常连续内存分配 #include <vector>int main() {// 堆mallocstd::vector<int> memory;for (int i 0; i < 1000; i) {memory.emplace_back(i*10);}return 0; } 主动内存分配释放 #in…

微信小程序简易录音机

首先先创建一个项目&#xff08;想必大家都会啦那就直接开干&#xff09; 首先上html结构 <view class"wx-container"><view id"title">录音机</view><view id"time">{{hours}}:{{minute}}:{{second}}</view>&l…

20240624在飞凌OK3588-C的Buildroot下查证GPIO64和gpiochip64的差异

20240624在飞凌OK3588-C的Buildroot下查证GPIO64和gpiochip64的差异 2024/6/24 20:19 GPIOchip代表GPIO控制器的编号&#xff0c;gpio代表特定GPIO的引脚号 本文以linux R4/Buildroot位例子&#xff0c;同样适用于Android12和其他【使用linux内核的】操作系统。 https://www.ji…

java医院绩效考核系统源码:医院绩效考核的发展趋势、医院绩效考核的具体方法

java医院绩效考核系统源码&#xff1a;医院绩效考核的发展趋势、医院绩效考核的具体方法 医疗机构绩效考核是对医疗机构绩效进行评估和分析的一项重要工作。它对医疗机构的发展起到了重要的指导和推动作用。本文将会分析国际上医院绩效考核的发展趋势以及医院绩效考核的具体方…

MySQL中的Redo-log是什么?有什么作用?

用来实现数据的恢复&#xff0c;数据被更新到缓冲区但没刷磁盘&#xff0c;然后MySQL宕机了&#xff0c;MySQL会通过日志恢复数据。 1.为什么需要Redo-log日志&#xff1f; MySQL绝大部分引擎都是基于磁盘存储数据的&#xff0c;每次读写数据都走磁盘&#xff0c;效率十分低下…

qt图像处理-将OpenCV的cv::Mat类型转换为QImage类型

在使用Qt进行图像处理时&#xff0c;经常需要将OpenCV的cv::Mat类型转换为QImage类型。以下是几种有效的方法&#xff0c;可以根据具体情况选择合适的方法进行转换。 方法一&#xff1a;直接使用QImage构造函数 这种方法直接使用QImage的构造函数&#xff0c;通过传递cv::Mat…

AI绘画Stable Diffussion 实操教程: 真人图片秒变动漫风,亲手绘制你的专属动漫头像

大家好&#xff0c;我是向阳 你是否曾幻想过自己置身于动漫世界&#xff0c;拥有那些令人羡慕的二次元特征&#xff1f;随着人工智能技术的飞速发展&#xff0c;这一幻想已不再遥不可及。在本文中&#xff0c;我们将一起揭开Stable Diffusion技术的神秘面纱&#xff0c;探索如…

WebFlux 和 Spring Security 会碰出哪些火花?

项目创建成功后&#xff0c;我们添加一个接口&#xff0c;用来获取登录用户信息&#xff0c;如下&#xff1a; RestController public class UserController { GetMapping(“/user”) public Mono getCurrentUser(Mono principal) { return principal; } } 注意我们的返…

音频信号分析

目录 一&#xff0c;音频获取 二&#xff0c;信号的基本形态 三&#xff0c;衰减信号的频域信号 四&#xff0c;低频信号 五&#xff0c;高频信号 六&#xff0c;七个音节的频率 一&#xff0c;音频获取 我用电子琴&#xff08;音色模式是卧式钢琴&#xff09;&#xff…