timeval
和 timespec
都是用來(lái)表示時(shí)間的結(jié)構(gòu)體,但在Linux中,timespec
更常用于表示時(shí)間,而timeval
則是一個(gè)舊的結(jié)構(gòu)體,逐漸被timespec
取代。
主要區(qū)別如下:
timeval
結(jié)構(gòu)體包含了兩個(gè)成員變量:tv_sec
表示秒數(shù),tv_usec
表示微秒數(shù)。而 timespec
結(jié)構(gòu)體也包含了兩個(gè)成員變量:tv_sec
表示秒數(shù),tv_nsec
表示納秒數(shù)。
timeval
結(jié)構(gòu)體的成員變量的類型是 long
,而 timespec
結(jié)構(gòu)體的成員變量的類型是 time_t
和 long
。
timeval
結(jié)構(gòu)體可以表示的最大時(shí)間范圍為約 71 分鐘,而 timespec
結(jié)構(gòu)體可以表示更長(zhǎng)的時(shí)間范圍。
綜上所述,timespec
結(jié)構(gòu)體更加靈活和精確,因此在Linux系統(tǒng)中更常用于表示時(shí)間。