作者:局外人 | 来源:互联网 | 2017-11-09 00:49
在NTFS中,时间是用64位表示的,是从1600年零时开始, 以100个纳秒值为单位,而在FAT32中比较复杂,FAT32的文件的时间值存储在目录项的特定位置中,而且要对位进行操作,且以1980开始进行计算。由于Linux不能使用WIN API, 那怎么办呢?大概说一下方法。
联想到time函数是从1970开始,所以我们借助gmtime函数,首先使用WIN API取得1970-1-1 00:00:00相对于1600年的纳秒值,然后转成秒值,再用gmtime取得相对于1970的年月日的表示值,再进行位处理等生成FAT32的时间值,存放于目录项中。