成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓你的C程序,自動打印版本信息

開發 前端
編譯過程中,編譯腳本mk.sh自動將當前時間等信息更新到頭文件sw_version.h這樣我們編譯出的可執行程序app就自帶了最新的版本信息。

一、軟件管理

稍微上點規模的軟件開發往往周期都非常長,中間會產生很多臨時版本,這些臨時版本往往會有各種各樣的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_frnotallow=#define SW_VERSION
  4 quotatinotallow="\""
  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**
      >> 表示重定向,信息覆蓋

執行結果

圖片

圖片圖片

大家可以根據自己需要,自己定制自己需要的版本號格式,同時也可以把該腳本嵌入到自己的編譯腳本中。

責任編輯:武曉燕 來源: 一口Linux
相關推薦

2024-07-29 00:00:00

C程序色彩文本

2024-11-22 06:00:00

自動鎖定WinForm

2011-05-24 15:29:05

程序CC++

2011-07-20 09:11:58

C++

2024-06-12 12:28:23

2024-11-15 11:00:00

C#多線程

2024-12-03 00:44:50

2009-08-26 13:22:24

C#打印程序

2015-12-07 11:44:31

程序員厭倦工作

2015-12-09 09:17:11

情緒厭倦程序員

2024-11-14 00:08:14

C#技術

2014-04-11 10:41:10

2025-05-22 09:43:55

2016-03-28 09:39:54

2010-02-01 16:54:18

C++打印地址信息

2015-02-13 10:52:48

Java程序員

2015-03-23 09:57:48

程序員

2025-04-15 00:00:00

2024-08-19 08:54:02

2021-12-08 07:31:40

微服務架構程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久91av | 99爱免费 | 91看片在线观看 | 亚洲成av| 国产一区二区三区亚洲 | 精品久久香蕉国产线看观看亚洲 | 欧美乱做爰xxxⅹ久久久 | 激情五月婷婷综合 | av大全在线 | 亚洲一区二区成人 | 2018国产精品 | 国产精品无码专区在线观看 | 欧美一区二区激情三区 | 国产视频久久久 | 日韩精品在线免费观看 | 欧美久久影院 | 亚洲成人福利在线观看 | 成人免费视频 | 国产成人一区 | 在线观看国产视频 | www.日韩 | 日韩福利在线 | 一区二区三区在线 | 欧 | 一级毛片在线播放 | 亚洲男人的天堂网站 | 一区二区三区小视频 | 成人免费视频网 | 午夜精品一区二区三区三上悠亚 | 欧美在线观看一区 | 国精日本亚洲欧州国产中文久久 | 伊人网站在线观看 | 亚洲视频欧美视频 | 成年人黄色小视频 | 在线观看成人 | 91中文字幕在线 | 懂色tv | 久久久女| 国产一级特黄真人毛片 | 色久电影 | 久久国产精品一区二区三区 | 国产精品区二区三区日本 |