一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

(二)Linux time test---事件類型、時(shí)間操作、延時(shí)函數(shù)(轉(zhuǎn))_鮑國濤的空間...

 haliiz 2010-05-07

一、時(shí)間類型。

Linux下常用的時(shí)間類型有4個(gè):time_t,struct timeval,struct timespec,struct tm。
(1)time_t是一個(gè)長(zhǎng)整型,一般用來表示用1970年以來的秒數(shù)。
(2)Struct timeval有兩個(gè)成員,一個(gè)是秒,一個(gè)是微妙。

       struct timeval

        {
              long tv_sec;        /**//* seconds */
                long tv_usec; /**//* microseconds */
         };
(3)struct timespec有兩個(gè)成員,一個(gè)是秒,一個(gè)是納秒。

          struct timespec

           {
                  time_t tv_sec;         /**//* seconds */
                  long    tv_nsec;        /**//* nanoseconds */
            };
(4)struct tm是直觀意義上的時(shí)間表示方法:

        struct tm

          {
                      int     tm_sec;         /**//* seconds */
                      int     tm_min;         /**//* minutes */
                      int     tm_hour;        /**//* hours */
                      int     tm_mday;        /**//* day of the month */
                      int     tm_mon;         /**//* month */
                      int     tm_year;        /**//* year */
                      int     tm_wday;        /**//* day of the week */
                      int     tm_yday;        /**//* day in the year */
                      int     tm_isdst;       /**//* daylight saving time */
           };
二、 時(shí)間操作
(1) 時(shí)間格式間的轉(zhuǎn)換函數(shù)
主要是 time_t、struct tm、時(shí)間的字符串格式之間的轉(zhuǎn)換??聪旅娴暮瘮?shù)參數(shù)類型以及返回值類型:

char *asctime(const struct tm *tm);
char *ctime(const time_t *timep);
struct tm *gmtime(const time_t *timep);
struct tm *localtime(const time_t *timep);
time_t mktime(struct tm *tm);
gmtime和localtime的參數(shù)以及返回值類型相同,區(qū)別是前者返回的格林威治標(biāo)準(zhǔn)時(shí)間,后者是當(dāng)?shù)貢r(shí)間
(2) 獲取時(shí)間函數(shù)
兩個(gè)函數(shù),獲取的時(shí)間類型看原型就知道了:

time_t time(time_t *t);
int gettimeofday(struct timeval *tv, struct timezone *tz);
前者獲取time_t類型,后者獲取struct timeval類型,因?yàn)轭愋偷木壒剩?/font>前者只能精確到秒,后者可以精確到微秒。
三、 延時(shí)函數(shù)
主要的延遲函數(shù)有:sleep(),usleep(),nanosleep(),select(),pselect().

unsigned int sleep(unsigned int seconds);
void usleep(unsigned long usec);
int nanosleep(const struct timespec *req, struct timespec *rem);
int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,struct timeval *timeout);
int pselect(int   n,   fd_set   *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigmask);


alarm函數(shù)是信號(hào)方式的延遲,這種方式不直觀,這里不說了。
僅通過函數(shù)原型中時(shí)間參數(shù)類型,可以猜測(cè)sleep可以精確到秒級(jí),
usleep/select可以精確到微妙級(jí),nanosleep和pselect可以精確到納秒級(jí)。
而實(shí)際實(shí)現(xiàn)中,linux上的nanosleep和alarm相同,都是基于內(nèi)核時(shí)鐘機(jī)制實(shí)現(xiàn),受linux內(nèi)核時(shí)鐘實(shí)現(xiàn)的影響,并不能達(dá)到納秒級(jí)的精度,man nanosleep也可以看到這個(gè)說明,man里給出的精度是:Linux/i386上是10 ms ,Linux/Alpha上是1ms。
這里有一篇文章
http://blog.csdn.net/zhoujunyi/archive/2007/03/30/1546330.aspx,測(cè)試了不同延遲函數(shù)之間的精確度。文章給出的結(jié)論是linux上精度最高的是select,10ms級(jí)別。我在本機(jī)器測(cè)試select和pselect相當(dāng),都達(dá)到了1ms級(jí)的精度,精度高于文章中給出的10ms,sleep在秒級(jí)以上和usleep/nanosleep相當(dāng)。下面貼下我機(jī)器上1ms時(shí)候的測(cè)試結(jié)果,其他不貼了:

sleep           1000          0      -1000
usleep           1000       2974       1974
nanosleep        1000       2990       1990
select           1000        991         -9
pselect           1000        990        -10
gettimeofday           1000       1000          0
使用gettimeofday循環(huán)不停檢測(cè)時(shí)間,可精確微秒級(jí),不過不適宜用來做定時(shí)器模塊。
因此后面的定時(shí)器模塊選擇select為延遲函數(shù)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    熟女高潮一区二区三区| 日本午夜免费观看视频| 99精品国产自在现线观看| 好吊妞视频只有这里有精品| 久久成人国产欧美精品一区二区| 老司机精品在线你懂的| 麻豆亚州无矿码专区视频| 精品久久综合日本欧美| 黄男女激情一区二区三区| 欧美午夜一级艳片免费看| 欧美精品久久一二三区| 日韩三级黄色大片免费观看| 国产一级内片内射免费看 | 国产一区二区三区丝袜不卡| 欧美成人国产精品高清| 色哟哟精品一区二区三区| 欧美一区二区在线日韩| 99久久精品国产麻豆| 亚洲欧洲一区二区综合精品| 国产一区二区在线免费| 亚洲一区二区三在线播放| 日本精品理论在线观看| 四季av一区二区播放| 成年男女午夜久久久精品| 国产精品日韩精品一区| 毛片在线观看免费日韩| 伊人久久五月天综合网| 亚洲男人天堂成人在线视频| 少妇人妻中出中文字幕| 好吊日成人免费视频公开| 欧美自拍系列精品在线| 中文字幕在线区中文色| 亚洲国产欧美精品久久| 亚洲一区二区三区日韩91| 欧美日韩国产成人高潮| 国产91麻豆精品成人区| 国产亚洲欧美自拍中文自拍| 日韩精品少妇人妻一区二区| 亚洲欧美日本视频一区二区| 欧美午夜一级特黄大片| 久久婷婷综合色拍亚洲|