需求
c/cpp 在一些嵌入式应用中,使用 time()
时,编译会报警告 warning: _gettimeofday is not implemented and will always fail
解决
这个警告的原因其实是因为,嵌入式环境中,有些是没有实现
_gettimeofday()
, 所以就需要自己来实现这个函数,实现从 rtc 时间到秒之间的转换。
int _gettimeofday(struct timeval *tv, struct timezone *tz)
{
Rtc::Date date;
Rtc::Time time;
Rtc::GetRtcValue(date, time);
tm time_tm {time.second, time.minute, time.hour, date.day, date.month - 1, date.year - 1900};
time_t time_second = mktime(&time_tm);
tv->tv_sec = time_second;
tv->tv_usec = 0;
// tz->tz_minuteswest = 480;
// tz->tz_dsttime = DST_NONE;
return 0;
}
参考
- _gettimeofday_r error come while i am building with latest stm cube ide
- STM32 之 时间戳的解析与生成
- STM32CubeMX使用(六)之RTC及制作时间戳
- mktime很慢就自己去实现一个吧
- linux几种时间函数总结
- 时间获取相关函数mktime()、gmtime()
- 【c/c++】linux时间获取与时间转换函数总结
- 杂谈:Linux时间管理之gettimeofday实现
- gettimeofday()函数的使用方法
- linux中time, ctime, gmtime, localtime, gettimeofday和strftime
- C语言的时间函数(1)gettimeofday,timeval,timezone
- linux系统中struct timeval结构体、struct timezone结构体以及gettimeofday函数
- C 标准库 - <time.h>
- undefined reference to _gettimeofday
- undefined reference to `_gettimeofday’ when compiling on a Teensy4.0
- Improve C & C++ library access to Teensy 4.x RTC
- Getting std::chrono to work with the Teensy
- Linux源码中的mktime算法解析
- Linux源码中的mktime算法解析
- Linux源码中的mktime算法解析
- Linux mktime 源代码简析