SylixOS移植时mk_time函数问题
2019独角兽企业重金招聘Python工程师标准>>>
1.适用范围
本文档适用于进行SylixOS中间件移植的技术人员。
2.问题复现
2.1 问题现象
在进行Python3移植测试时,test_time.py测试用例出错,错误如图 2.1 所示:
图 2.1 测试用例出错信息
2.2 问题源码
测试用例的python源码如图 2.2 所示:
图 2.2 问题源码
3.原因分析
mktime()是定义在time.h中的函数,函数原型为time_t mktime(struct tm * timeptr)。作用是将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的时间所经过的秒数。
在Linux下,timeptr所指的tm结构数据可以为任意数值。而在SylixOS下,mktime()函数的实现中有一个判断,如程序清单 3.1所示:
程序清单 3.1
if ((timeptr->tm_year + TM_YEAR_BASE) < EPOCH_YEAR )
return ((time_t) PX_ERROR);
其中,TM_YEAR_BASE宏为1900,EPOCH_YEAR宏为1970。现象为如果传入的tm_year值小于70,即实际传入时间在1970年之前,会返回-1,导致test_time.py的测试函数无法通过。
这一行为与Windows是一致的,因为以函数的功能来看,传入在1970年之前的时间也不合理,SylixOS的mk_time()函数只处理1970年以后的时间,Windows上是只处理1970-3000的时间。
转载于:https://my.oschina.net/u/3758684/blog/1833055
SylixOS移植时mk_time函数问题相关推荐
- 正点原子STM32F103ZET6程序移植到STM32F103C8T6时Delay函数异常问题
正点原子STM32F103ZET6库函数程序移植到STM32F103C8T6时Delay函数异常问题 在根据正电原子STM32开发板例程的库函数程序来进行移植的时候,可能会出现程序能运行但是delay ...
- emWin移植时遇到的红蓝反色问题解决
由于公司项目需求,尝试学习emWin,但遇到了红蓝反色的问题. 开发平台是正点原子探索者配2.4寸电阻屏(早期买的,没钱换..),正点原子的视频没有下载,直接根据<STM32F4 EMWIN开发 ...
- UA PHYS515A 电磁理论IV 时变电磁场理论6 用含时Green函数求解时变电磁场问题的例子
UA PHYS515A 电磁理论IV 时变电磁场理论6 用含时Green函数求解时变电磁场问题的例子 在一个nuclear中有一些photon,photon受激产生e−,e+e^-,e^+e−,e+两 ...
- [vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗?
[vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗? 莫名其妙的问题.可以同名,但data会覆盖methods.并且本就不该同名,同名说明你命名不规范.然后解释为什么会覆盖,因为 ...
- 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...
[多选题]因发现核酶而共享诺贝尔化学奖的科学家是(). [简答题]如果是六角梅花,你还可以用什么方法完成? [填空题]如果函数中没有 return 语句或者 return 语句不带任何返回值,那么该函 ...
- Python如何创建装饰器时保留函数元信息
问题 你写了一个装饰器作用在某个函数上,但是这个函数的重要的元信息比如名字.文档字符串.注解和参数签名都丢失了. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后, ...
- mysql链接出错_请配置/amysql/config.php文件_MySQL数据库之PHP连接mysql时mysql_connect()函数不可用...
本文主要向大家介绍了MySQL数据库之PHP连接mysql时mysql_connect()函数不可用 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我在搭建环境时也没有再安装m ...
- gdb调试时调用函数、设置观察点以及GDB的宏
Table of Contents 调试时调用函数 观察点 GDB宏 调试是一项复杂的任务.开发人员大部分时间都花在调试上,因此熟悉许多调试工具很重要 在Linux中,本机调试器是GDB,它是基于命令 ...
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
在上一篇blog(工具(Tray Friend):将任何程序,最小化到系统托盘 )中. 使用C#调用了很多非托管的C++代码. 现在就把"C# 调用Dll中非托管C++代码时,函数参数的类型 ...
最新文章
- 151. 翻转字符串里的单词
- 神策数据入选 Facebook 全球合作计划,助力出海客户拥抱全球化广告生态
- 每日程序C语言21-递归逆序数出字符串
- 功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了
- MySQL/MariaDB Tips
- SpringNote01.基于SpringMVC-Hibernate的Blog系统
- [HDU3507]Print Article
- 2021MySql-8.0.26安装详细教程(保姆级)
- 参数检验和非参数检验的区别
- 身为一个程序员该怎么去判断一个工作的好坏?
- 一个程序媛的古北水镇游览攻略
- 怎么把照片转换成jpg格式?jpg格式图片怎么弄
- 新B站视频来了!Spring security + vue前后端分离后台管理系统
- 讯搜全文检索引擎-服务器部署
- origin画图工具使用
- 小程序 cover-view 字体_iFonts 字体助手 - 用有趣的字做设计
- 零温格林函数直接关联计算磁化率方法
- 十大Wifi芯片原厂
- 激光雷达与毫米波雷达的原理和厂商
- 中企动力与泰山集团同行 强强联合加速产业布局