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函数问题相关推荐

  1. 正点原子STM32F103ZET6程序移植到STM32F103C8T6时Delay函数异常问题

    正点原子STM32F103ZET6库函数程序移植到STM32F103C8T6时Delay函数异常问题 在根据正电原子STM32开发板例程的库函数程序来进行移植的时候,可能会出现程序能运行但是delay ...

  2. emWin移植时遇到的红蓝反色问题解决

    由于公司项目需求,尝试学习emWin,但遇到了红蓝反色的问题. 开发平台是正点原子探索者配2.4寸电阻屏(早期买的,没钱换..),正点原子的视频没有下载,直接根据<STM32F4 EMWIN开发 ...

  3. UA PHYS515A 电磁理论IV 时变电磁场理论6 用含时Green函数求解时变电磁场问题的例子

    UA PHYS515A 电磁理论IV 时变电磁场理论6 用含时Green函数求解时变电磁场问题的例子 在一个nuclear中有一些photon,photon受激产生e−,e+e^-,e^+e−,e+两 ...

  4. [vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗?

    [vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗? 莫名其妙的问题.可以同名,但data会覆盖methods.并且本就不该同名,同名说明你命名不规范.然后解释为什么会覆盖,因为 ...

  5. 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...

    [多选题]因发现核酶而共享诺贝尔化学奖的科学家是(). [简答题]如果是六角梅花,你还可以用什么方法完成? [填空题]如果函数中没有 return 语句或者 return 语句不带任何返回值,那么该函 ...

  6. Python如何创建装饰器时保留函数元信息

    问题 你写了一个装饰器作用在某个函数上,但是这个函数的重要的元信息比如名字.文档字符串.注解和参数签名都丢失了. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后, ...

  7. mysql链接出错_请配置/amysql/config.php文件_MySQL数据库之PHP连接mysql时mysql_connect()函数不可用...

    本文主要向大家介绍了MySQL数据库之PHP连接mysql时mysql_connect()函数不可用 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我在搭建环境时也没有再安装m ...

  8. gdb调试时调用函数、设置观察点以及GDB的宏

    Table of Contents 调试时调用函数 观察点 GDB宏 调试是一项复杂的任务.开发人员大部分时间都花在调试上,因此熟悉许多调试工具很重要 在Linux中,本机调试器是GDB,它是基于命令 ...

  9. C# 调用Dll中非托管C++代码时,函数参数的类型对照

    在上一篇blog(工具(Tray Friend):将任何程序,最小化到系统托盘 )中. 使用C#调用了很多非托管的C++代码. 现在就把"C# 调用Dll中非托管C++代码时,函数参数的类型 ...

最新文章

  1. 151. 翻转字符串里的单词
  2. 神策数据入选 Facebook 全球合作计划,助力出海客户拥抱全球化广告生态
  3. 每日程序C语言21-递归逆序数出字符串
  4. 功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了
  5. MySQL/MariaDB Tips
  6. SpringNote01.基于SpringMVC-Hibernate的Blog系统
  7. [HDU3507]Print Article
  8. 2021MySql-8.0.26安装详细教程(保姆级)
  9. 参数检验和非参数检验的区别
  10. 身为一个程序员该怎么去判断一个工作的好坏?
  11. 一个程序媛的古北水镇游览攻略
  12. 怎么把照片转换成jpg格式?jpg格式图片怎么弄
  13. 新B站视频来了!Spring security + vue前后端分离后台管理系统
  14. 讯搜全文检索引擎-服务器部署
  15. origin画图工具使用
  16. 小程序 cover-view 字体_iFonts 字体助手 - 用有趣的字做设计
  17. 零温格林函数直接关联计算磁化率方法
  18. 十大Wifi芯片原厂
  19. 激光雷达与毫米波雷达的原理和厂商
  20. 中企动力与泰山集团同行 强强联合加速产业布局

热门文章

  1. vue-cli——vue-resource登录注册实例
  2. 玩转 iOS 开发:《iOS 设计模式 — 工厂模式》
  3. FreeSwitch 的初始化及其模块加载过程
  4. oracle job使用详解及job不运行的检查方法
  5. pyspark常用API
  6. vivado烧录flash过程
  7. Python的基础,Python的101
  8. burpsuite 设置https_新手教程:如何使用Burpsuite抓取手机APP的HTTPS数据
  9. 从命令行使用 wget 调试网页错误
  10. 从业5年,教你学习Linux开发