当前位置: 技术问答>linux和unix
关于Linux内核墙上时钟初始化代码的疑问
来源: 互联网 发布时间:2016-04-19
本文导语: 下列代码来自get_cmos_time函数,其中的最后几行在下没看明白。 那就是如果year加上1900后若小于1970,则year的值再加100。 这样的话,year的值要么是相当于从1970年后开始逝去的年数,要么是从2000年后开始逝去的年数。 ...
下列代码来自get_cmos_time函数,其中的最后几行在下没看明白。
那就是如果year加上1900后若小于1970,则year的值再加100。
这样的话,year的值要么是相当于从1970年后开始逝去的年数,要么是从2000年后开始逝去的年数。
而这个1970又是怎么回事呢?
提前谢谢各位高人了:)
///////////////////////////////
do { /* Isn't this overkill ? UIP above should guarantee consistency */
sec = CMOS_READ(RTC_SECONDS);
min = CMOS_READ(RTC_MINUTES);
hour = CMOS_READ(RTC_HOURS);
day = CMOS_READ(RTC_DAY_OF_MONTH);
mon = CMOS_READ(RTC_MONTH);
year = CMOS_READ(RTC_YEAR);
} while (sec != CMOS_READ(RTC_SECONDS));
...
if ((year += 1900)
那就是如果year加上1900后若小于1970,则year的值再加100。
这样的话,year的值要么是相当于从1970年后开始逝去的年数,要么是从2000年后开始逝去的年数。
而这个1970又是怎么回事呢?
提前谢谢各位高人了:)
///////////////////////////////
do { /* Isn't this overkill ? UIP above should guarantee consistency */
sec = CMOS_READ(RTC_SECONDS);
min = CMOS_READ(RTC_MINUTES);
hour = CMOS_READ(RTC_HOURS);
day = CMOS_READ(RTC_DAY_OF_MONTH);
mon = CMOS_READ(RTC_MONTH);
year = CMOS_READ(RTC_YEAR);
} while (sec != CMOS_READ(RTC_SECONDS));
...
if ((year += 1900)