嵌入式 linux下date命令详解以及如何在Makefile中定义宏并在c中进行使用来定义软件版本号

定义版本号:Makefile 示例:EXEC = systools#OBJS = *.c cgihtml/*.c channel/*.c md5/*.cOBJS = *.c cgihtml/*.c md5/*.c rs2ip/*.c#OBJS = *.c md5/*.cVERSION="2.6.100"#Notice that the date is GMTBUIL
摘要由CSDN通过智能技术生成

定义版本号:Makefile 示例:


EXEC = systools
#OBJS = *.c cgihtml/*.c channel/*.c md5/*.c
OBJS = *.c cgihtml/*.c md5/*.c rs2ip/*.c
#OBJS = *.c md5/*.c

VERSION="2.6.100"

#Notice that the date is GMT
BUILD_TIME="$(shell TZ=CST date -u "+%Y-%m-%d %H:%M:%S CST")"


all: $(EXEC)

$(EXEC): $(OBJS)
 FLTFLAGS="$(FLTFLAGS) -s 65536" \
 $(CC) -DINHAND_INNER_VERSION=\"$(VERSION)\" -DINHAND_PRODUCT_BUILD_TIME=\"$(BUILD_TIME)\" $(LDFLAGS) -Imd5 -Irs2ip -I./ -o $@ $(OBJS) $(LIBCRYPT) $(LDLIBS$(LDLIBS_$@))
#$(CC) $(LDFLAGS) -Icgihtml -Imd5 -I./ -o $@ $(OBJS) $(LDLIBS$(LDLIBS_$@))
#$(CC) $(LDFLAGS) -Icgihtml -Ichannel -Imd5 -I./ -o $@ $(OBJS) $(LDLIBS$(
LDLIBS_$@))

romfs:
 $(ROMFSINST) /bin/$(EXEC)

clean:
 -rm -f $(EXEC) *.elf *.gdb *.o
 -rm -f $(EXEC) cgihtml/*.o
 

注:

红色标记的变量在C是按照字符串进行打印即可!

 date命令详解:

使用方式 :

date [-u] [-d datestr] [-s datestr] [--utc] [--universal]  [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT]  [MMDDhhmm[[CC]YY][.ss]]
说明 :
date  可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面 : 
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12) 
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%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 
%Z : 显示时区
日期方面 :
%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/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999) 
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm  为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
参数 :
-d datestr : 显示 datestr 中所设定的时间  (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u :  显示目前的格林威治时间
--version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 :
date  '+%T%n%D'
显示月份与日数 :
date '+%B %d'
显示日期与设定时间(12:34:56) :
date  --date '12:34:56'
注意 :
当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 -  符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为  8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root 身分更改了系统时间之后,请记得以 clock -w  来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

http://witmax.cn/linux-date.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值