linux时间调整为dst,Linux上系统时间函数、DST等相关有关问题总结
Linux下系統(tǒng)時(shí)間函數(shù)、DST等相關(guān)問題總結(jié)
1. 內(nèi)核中時(shí)間的基本類型:
在Linux內(nèi)核中,常見的時(shí)間類型有以下兩種:系統(tǒng)時(shí)間(system time)和實(shí)時(shí)時(shí)間(real time),其實(shí),方便理解,可以將二者分別認(rèn)為是相對(duì)時(shí)間和絕對(duì)時(shí)間,同時(shí)它們分別對(duì)應(yīng)于內(nèi)核中的兩個(gè)全局變量值:jiffies和xtime。
xtime: xtime值是從cmos電路中取得的時(shí)間,一般是從某個(gè)歷史時(shí)刻(1970年1月1日0時(shí)0分)開始到現(xiàn)在的時(shí)間,其實(shí)也就是我們操作系統(tǒng)上面所顯示的時(shí)間,它的精度是微秒。
jiffies:jiffies是記錄從電腦開機(jī)到現(xiàn)在總共的時(shí)鐘中斷次數(shù)(拍數(shù)),它的值取決于系統(tǒng)的頻率,單位是HZ,其倒數(shù)即表示一秒鐘中斷所產(chǎn)生的次數(shù),在Linux 2.5內(nèi)核版本之后將HZ從100提高到1000MHZ,它的精度也就是10毫秒。
根據(jù)對(duì)上面兩個(gè)全局變量值的介紹,大提升應(yīng)該了解到Linux系統(tǒng)中系統(tǒng)時(shí)間與實(shí)時(shí)時(shí)間之間的區(qū)別,前者表示的是從電腦開機(jī)到現(xiàn)在的時(shí)間,可以通過全局變量jiffies值換算而來;而實(shí)時(shí)時(shí)間則是指我們?nèi)粘I钪械娜掌跁r(shí)間,它跟UTC有著密切關(guān)系,這些將在后面章節(jié)做介紹。
2. Linux time API中常見的時(shí)間結(jié)構(gòu):
(1)time_t:它是一個(gè)長整型數(shù)據(jù),用來表示從1970年之后到現(xiàn)在的秒數(shù)。一般通過time函數(shù)獲取。
(2)timeval結(jié)構(gòu):通過gettimeofday函數(shù)獲取。
struct timeval
{
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
(3)timezone結(jié)構(gòu):通過gettimeofday函數(shù)獲取。
struct timezone
{
int tz_minuteswest; /*?和Greewich時(shí)間差了多少分鐘*/
int tz_dsttime; /*DST types*/
};
【引申】常見的DST類型如下:
#define???DST_NONE?? ???0??? /* not on dst */
#define???DST_USA??????? 1??? /* USA style dst */
#define???DST_AUST?? 
總結(jié)
以上是生活随笔為你收集整理的linux时间调整为dst,Linux上系统时间函数、DST等相关有关问题总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 7.0修改网卡ip,Cent
- 下一篇: linux系统默认的环境变量path,L