• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            吾嘗終日而思矣 不如須臾之所學(xué)也

            御物而行 御風(fēng)而飛
            隨筆 - 10, 文章 - 1, 評(píng)論 - 9, 引用 - 0
            數(shù)據(jù)加載中……

            select 和pselect的區(qū)別

            /* According to POSIX 1003.1-2001 */ 
            #include <sys/select.h>

            /* According to earlier standards */ 
            #include <sys/time.h>
             
            #include <sys/types.h>
             
            #include <unistd.h>

            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);

            FD_CLR(int fd, fd_set *set); 
            FD_ISSET(int fd, fd_set *set); 
            FD_SET(int fd, fd_set *set); 
            FD_ZERO(fd_set *set); 
             

            以上是關(guān)于selectpselect技術(shù)的函數(shù)族。

            下面對(duì)selectpselect函數(shù)原型的說(shuō)明:

            Selectpselect都是等待一系列的文件描述符(int)的狀態(tài)發(fā)生變化。

            這兩個(gè)函數(shù)基本上是一致,但是有三個(gè)區(qū)別:

            第一點(diǎn)    select函數(shù)用的timeout參數(shù),是一個(gè)timeval的結(jié)構(gòu)體(包含秒和微秒),然而pselect用的是一個(gè)timespec結(jié)構(gòu)體(包含秒和納秒)

            第二點(diǎn)    select函數(shù)可能會(huì)為了指示還剩多長(zhǎng)時(shí)間而更新timeout參數(shù),然而pselect不會(huì)改變timeout參數(shù)

            第三點(diǎn)    select函數(shù)沒(méi)有sigmask參數(shù),當(dāng)pselectsigmask參數(shù)為null時(shí),兩者行為時(shí)一致的。

            三個(gè)獨(dú)立的文件描述符集合將會(huì)被監(jiān)視,在readset中的文件描述符將會(huì)被監(jiān)視是不是可讀,就是說(shuō)讀這個(gè)文件描述符是否會(huì)發(fā)生阻塞。同理writeset集合將會(huì)被監(jiān)視寫過(guò)程是不是會(huì)被阻塞,exceptfds 將會(huì)被監(jiān)視是否會(huì)發(fā)生異常。函數(shù)退出的時(shí)候,這些文件描述符集合將會(huì)發(fā)生改變用于標(biāo)示文件描述符的狀態(tài)變化。

            有四個(gè)宏函數(shù)是用于提供多工集合監(jiān)視的:FD_ZERO用以清空一個(gè)集合,FD_SETFD_CLR是用來(lái)從一個(gè)集合中添加和刪除一個(gè)文件描述符,FD_ISSET是用來(lái)測(cè)試一個(gè)文件描述符是不是在一個(gè)集合中。

             

             

            EXAMPLE

            #include <stdio.h>

            #include <sys/time.h>

            #include <sys/types.h>

            #include <unistd.h>

             

            int

            main(void) {

                fd_set rfds;

                struct timeval tv;

                int retval;

             

                /* Watch stdin (fd 0) to see when it has input. */

                FD_ZERO(&rfds);

                FD_SET(0, &rfds);

                /* Wait up to five seconds. */

                tv.tv_sec = 5;

                tv.tv_usec = 0;

             

                retval = select(1, &rfds, NULL, NULL, &tv);

                /* Don't rely on the value of tv now! */

             

                if (retval == -1)

                    perror("select()");

                else if (retval)

                    printf("Data is available now.\n");

                    /* FD_ISSET(0, &rfds) will be true. */

                else

                    printf("No data within five seconds.\n");

             

                return 0;

            }

             

            posted on 2011-06-27 23:04 Roger 閱讀(6651) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # re: select 和pselect的區(qū)別[未登錄](méi)  回復(fù)  更多評(píng)論   

            這超過(guò)來(lái)超過(guò)去TTMD的 沒(méi)意思
            2011-11-01 21:08 | 小石

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久久精品国产亚洲成人满18免费网站| 久久久亚洲欧洲日产国码是AV| …久久精品99久久香蕉国产 | 久久A级毛片免费观看| 国产—久久香蕉国产线看观看| 中文无码久久精品| 亚洲国产美女精品久久久久∴| 国产无套内射久久久国产| 国产一区二区久久久| 久久精品国产亚洲网站| 日本亚洲色大成网站WWW久久| 人妻无码中文久久久久专区| 色综合久久天天综合| 亚洲国产精品无码久久久秋霞2| 久久播电影网| 久久国产精品99久久久久久老狼| 亚洲国产精品久久66| 青青青国产精品国产精品久久久久 | 久久精品麻豆日日躁夜夜躁| 久久久久久久波多野结衣高潮 | 久久久女人与动物群交毛片| 日日狠狠久久偷偷色综合96蜜桃 | 一97日本道伊人久久综合影院| 欧美亚洲色综久久精品国产| 91久久精品无码一区二区毛片| 亚洲精品国产综合久久一线| 九九99精品久久久久久| 久久久噜噜噜久久中文字幕色伊伊 | 粉嫩小泬无遮挡久久久久久| 亚洲精品国产自在久久| 久久综合五月丁香久久激情| 伊人久久大香线焦综合四虎| 精品久久久噜噜噜久久久| 久久精品国产2020| 欧美一区二区久久精品| 亚洲精品NV久久久久久久久久 | 久久精品国产亚洲AV嫖农村妇女| 一级女性全黄久久生活片免费 | 亚洲人成伊人成综合网久久久| 久久91精品综合国产首页| 精品熟女少妇a∨免费久久|