《Rust实战》读书笔记——第9章,时间,2个OS两个方案
[复制链接]
遥想1/4世纪之前,人类曾为“千年虫”问题困扰,以至于有个电影还用到了这个题材。女主是美女凯瑟琳泽塔琼斯,男主是初代007肖恩康纳利……跑题了。
回来说正事。为了解决年份不够的问题,有各种方案。unix不怕,因为它使用1970年做基准,以后都到64位之后就更没事了,window比较烧包,改成从1601年做基准。总之,时间在软件系统里就是个数而已。(本章前6页可以不看了)。
既然unix阵营和windos的标准不一样,那么rust在处理时间的时候,为了平台兼容,就要用2个方案。不像脚本类语言,这些都包好了有现成的,rust要使用类似C中#ifdef的方式来处理,就是#[cfg()]。这样在posix里用libc,在win里用kernel32、winapi。注意#[cfg没有类似#endif的形式,所以作用范围就只有紧邻的一行或一个函数定义。
|