全部学习汇总: https:///GreyZhang/little_bits_of_linux

         就昨晚上用了一下VS Code,还是切换回了emacs。我觉得,现在人懒了,鼠标能够不用的话也就不去用了。emacs在浏览代码的时候正好,只是现在看了,语义分析的效果稍微差一点,就当是自己锻炼一下文本阅读能力了。

         这一次看看mktime.c文件。

532_linux内核学习_mktime.c文件分析_Linux

         这段注释很有意思,我加了一下我看代码时候的一些想法。我觉得,有这样的心态去做软件开发的时候,出来的东西才会是有趣的。

532_linux内核学习_mktime.c文件分析_Linux_02

         这里面都是一些时间的转换,相应的时间全都转换成了秒。

532_linux内核学习_mktime.c文件分析_Linux_03

         这里是就算了每个月的开始时间,单位是秒。时间是按照闰年来计算的。

532_linux内核学习_mktime.c文件分析_Linux_04

         从大概的函数代码理解看,就是给一个时间然后转换成距离70年1月1日0时0分0秒的相对时间。进一步理解,需要看看参数中的结构体定义。

532_linux内核学习_mktime.c文件分析_Linux_05

         可以理解为一个时间信息的属性,几个属性信息分别有常见的年月日时分秒,此外还有星期以及天数。我看了下标准库,星期的取值范围是0~6,分别代表周日到周六。yday的时间是0到365。

         回看上面的函数,有一个闰年的判断计算。我觉得似乎有代码接口可以直接用。

532_linux内核学习_mktime.c文件分析_Linux_06

         看tm结构体定义的时候看到了这个,其实就是一个闰年的计算。

         这个文件算是目前看到这里最简单的一份代码了,也是最容易理解的。而且,这个其实是在库函数中已经有替代品了的。不过也好,算是给自己一个学习理解的机会了。