<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      讓你的C程序,可以自動更新版本信息

      一、軟件管理

      稍微上點規模的軟件開發往往周期都非常長,

      中間會產生很多臨時版本,

      這些臨時版本往往會有各種各樣的bug,

      由于項目參與的人員眾多、水平參差不齊,

      軟件分支眾多、功能復雜,

      經常會有各種稀奇古怪的事情發生,

      經常遇到一個問題就是:
      某個測試版本測出了問題,
      但是研發卻發現服務器中沒有對應的版本與之對應。

      有的公司要求所有bug必須有始有終,

      一旦bug無法復現,

      這時候測試和開發免不了一陣扯皮,

      這影響到績效啊!!!

      所以版本管理非常重要。

      現在大多數公司軟件都是采用git管理,

      對于嵌入式軟件,

      廠家提供的sdk,往往都有git本地倉庫,

      嵌入式軟件一般規模都不大,

      所以公司對軟件版本管理往往并不會太嚴格,

      很多嵌入式軟件工程師都沒能養成良好的軟件管理習慣。

      本文主要講解如何在編譯的時候就給軟件自動添加更新軟件版本的功能,

      程序運行的開始就將版本打印出來,

      配合git,更方便的定位軟件版本問題。

      二、軟件版本號

      公司的軟件版本號往往都比較復雜,

      本文為便于讀者理解,將版本號的定義精簡如下:

      僅僅打印版本發布的時間,

      后續彭老師會單獨在寫一篇,一個比較經典的版本號管理實例文章,有興趣的老鐵可以關注下彭老師的號。

      三、原理

      我們可以定義一個頭文件sw_version.h專門存放版本信息的宏,

      #define SW_VERSION “2024-09-09-7”
      

      主程序包含該頭文件,

      并在程序運行的開頭位置,打印改宏。

      編譯 過程中,編譯腳本mk.sh自動將當前時間等信息更新到頭文件sw_version.h

      這樣我們編譯出的可執行程序app就自帶了最新的版本信息。

      更新頭文件sw_version.h中的內容,我們可以字節編寫c程序修改,也可以直接使用命令date,

      本文通過后者來講解。

      四、命令date

      date選項

      date 能用來顯示或設定系統的日期和時間:

      • 常見選項
      --help:顯示輔助信息
      --version:顯示date命令版本信息
      -u:顯示目前的格林威治時間
      -d:做日期時間相關的運算
      - - date = 'dateStr' :做時間的相關運算
      

      本文主要用到顯示日期和時間的功能:

      • 1) 顯示系統當前日期時間
      [root@hadoop ~]# date
      
      • 2) 以指定格式顯示日期時間
      [root@hadoop ~]# date '+%Y-%m-%d %H:%M:%S'
      

      執行結果:

      date格式標記日期、時間

      date 能用來顯示或設定系統的日期和時間,在顯示方面,使用者能設定欲顯示的格式,格式設定為一個加號后接數個標記

      日期方面:

      %a : 星期幾 (Sun..Sat)
      
      %A : 星期幾 (Sunday..Saturday)
      
      %b : 月份 (Jan..Dec)
      
      %B : 月份 (January..December)
      
      %c : 直接顯示日期和時間
      
      %d : 日 (01..31)
      
      %D : 直接顯示日期 (mm/dd/yy)
      
      %h : 同 %b
      
      %j : 一年中的第幾天 (001..366)
      
      %m : 月份 (01..12)
      
      %U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
      
      %w : 一周中的第幾天 (0..6)
      
      %W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
      
      %x : 直接顯示日期 (mm/dd/yyyy)
      
      %y : 年份的最后兩位數字 (00.99)
      
      %Y : 完整年份 (0000..9999)
      

      時間方面:

      %%: 打印出%
      
      %n : 下一行
      
      %t : 跳格
      
      %H : 小時(00..23)
      
      %k : 小時(0..23)
      
      %l : 小時(1..12)
      
      %M : 分鐘(00..59)
      
      %p : 顯示本地AM或PM
      
      %P : 顯示本地am或pm
      
      %r : 直接顯示時間(12 小時制,格式為 hh:mm:ss [AP]M)
      
      %s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
      
      %S : 秒(00..61)
      
      %T : 直接顯示時間(24小時制)
      
      %X : 相當于%H:%M:%S %p
      
      %Z : 顯示時區
      

      若是不以加號作為開頭,則表示要設定時間,而時間格式為

       MMDDhhmm[[CC]YY][.ss]
      
      MM 為月份,
      
      DD 為日,
      
      hh 為小時,
      
      mm 為分鐘,
      
      CC 為年份前兩位數字,
      
      YY 為年份后兩位數字,
      
      ss 為秒數
      

      五、腳本實例

      腳本實例:

        1 #!/bin/bash
        2 
        3 str_front=#define SW_VERSION
        4 quotation="\""
        5 version_file=sw_version.h
        6 
        7 rm $version_file
        8 echo $str_front $quotation$(date '+%Y-%m-%d-%H')$quotation >> $version_file 
      
      * 3行:定義環境變量str_front,用于保存字符串 `#define SW_VERSION ` 
      * 4行:定義環境變量quotation,保存字符`"`
      * 5行:定義環境變量version_file,保存頭文件**sw_version.h**名字
      * 7行:刪除頭文件**sw_version.h**
      * 8行:更新最新版本信息到頭文件**sw_version.h**
            借助date命令拼接成下面字符串
      		#define SW_VERSION “2024-09-09-7”
      	  將該字符串信息,通過echo命令重定向到頭文件**sw_version.h**
            >> 表示重定向,信息覆蓋 
      

      執行結果


      大家可以根據自己需要,自己定制自己需要的版本號格式,

      同時也可以把該腳本嵌入到自己的編譯腳本中。

      參考:

      https://blog.csdn.net/qq_42246689/article/details/83621262?spm=1001.2014.3001.5506
      
      posted @ 2024-08-17 11:13  一口Linux  閱讀(249)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码伊人久久大杳蕉中文无码 | 人妻少妇精品视频专区| 久久精品av国产一区二区| 99久久婷婷国产综合精品青草漫画 | 亚洲 欧美 综合 另类 中字| 日本一级午夜福利免费区| 色狠狠色噜噜AV一区| 灵璧县| 东京热无码国产精品| 精品国产福利一区二区在线| 精品中文人妻在线不卡| 久久国产精品第一区二区| 边摸边吃奶边做爽动态| 欧美福利电影A在线播放| 人人妻人人澡人人爽曰本| 日韩精品成人网页视频在线| 麻豆国产传媒精品视频| 亚洲性日韩精品一区二区| 国产一区二区不卡精品视频| 中文字幕日韩精品人妻| 99re热这里只有精品视频| 国产久爱免费精品视频| 人妻影音先锋啪啪av资源 | 国产地址二永久伊甸园| 国产美女在线观看大长腿| 精品人妻丰满久久久a| 欧美日韩精品一区二区三区高清视频| 伊人成人在线视频免费| 成人永久免费A∨一级在线播放| 2021国产精品视频网站| 国产成人高清亚洲综合| 亚洲高清偷拍一区二区三区| 欧洲成人在线观看| 黑人异族巨大巨大巨粗| 人人超碰人摸人爱| 精品人妻av区乱码| 国产一区二区三区免费观看| 国语精品一区二区三区| 欧美成人午夜精品免费福利| 精品国产三级a∨在线欧美| 亚洲午夜亚洲精品国产成人|