SylixOS移植時mk time函式問題

2021-08-20 20:52:06 字數 852 閱讀 4196

本文件適用於進行sylixos中介軟體移植的技術人員。

在進行python3移植測試時,test_time.py測試用例出錯,錯誤如圖 2.1 所示:

圖 2.1 測試用例出錯資訊

測試用例的python原始碼如圖 2.2 所示:

圖 2.2 問題原始碼

mktime()是定義在time.h中的函式,函式原型為time_t mktime(struct tm * timeptr)。作用是將引數timeptr所指的tm結構資料轉換成從公元2023年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,即實際傳入時間在2023年之前,會返回-1,導致test_time.py的測試函式無法通過。

這一行為與windows是一致的,因為以函式的功能來看,傳入在2023年之前的時間也不合理,sylixos的mk_time()函式只處理2023年以後的時間,windows上是只處理1970-3000的時間。

sylixos標準工程移植到Lite版本

1.概述 針對低端處理器 如arm m系列處理器 的開發工作,翼輝資訊推出了sylixos lite工程版本。sylixos lite版本工程屬於sylixos輕量級工程,與標準的sylixos工程相比裁剪掉部分功能 如gdb除錯 虛擬記憶體管理 動態裝載 部分網路功能等 由於sylixos lit...

ARM移植時的OABI與EABI

1。什麼是abi oabi中的o,表示 old lagacy 舊的,過時的,oabi就是舊的 老的abi。eabi中的e,表示 embedded 是一種新的abi。eabi有時候也叫做gnu eabi。oabi和eabi都是專門針對arm的cpu來說的。3。eabi的好處 為何要用eabi a。支援...

ShareSDK向iOS平台移植時問題及解決辦法

問題 此前,我的開發環境是windows7 64bits vmware 9.0 mac os 8.5 xcode 4.5,結果在測試遊戲中整合目前最新的sharesdk sharesdk for ios 2.10.3,而sharesdk for cocos2d x也是目前最新的 時失敗。出現如下圖所...