• <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>

            厚積薄發(fā),滴水穿石

            搬家到主站了:http://www.cnblogs.com/cokecoffe/
            隨筆 - 45, 文章 - 8, 評(píng)論 - 12, 引用 - 0
            數(shù)據(jù)加載中……

            Select的使用

            首先解釋幾個(gè)名詞
            阻塞|非阻塞、同步|異步
            同步和異步僅僅是關(guān)于所關(guān)注的消息如何通知的機(jī)制,而不是處理消息的機(jī)制.也就是說(shuō),同步的情況下,是由處理消息者自己去等待消息是否被觸發(fā),而異步的情況下是由觸發(fā)機(jī)制來(lái)通知處理消息者
            阻塞和非阻塞,這兩個(gè)概念與程序等待消息(無(wú)所謂同步或者異步)時(shí)的狀態(tài)有關(guān)。
            同步/異步與阻塞/非阻塞是兩組不同的概念,它們可以共存組合。
            Select
            函數(shù)原型:

            int select(int maxfdp,//所有文件描述符的最大值加1
                      fd_set *readfds,//關(guān)注的可讀描述符集
                      fd_set *writefds,//關(guān)注的可寫(xiě)描述符集                                 
                      fd_set *errorfds,//要關(guān)注的異常描述符集              
                      struct timeval *timeout//超時(shí)時(shí)間
                       ); 
            //從觸摸屏讀取數(shù)據(jù)
            int ReadFunc(int fd, char *buf, int len)
            {
                    fd_set fset;
                    
            struct timeval tv;
                    
            int rval;

                    FD_ZERO(
            &fset);
                    FD_SET(fd, 
            &fset);
                    tv.tv_sec 
            = 1;
                    tv.tv_usec 
            = 0;
                    
            int pos = 0;
                    
            int ret = 0;

                    
            while(1){
                            
            if ((rval = select( fd+1&fset, NULL, NULL, &tv)) < 0)
                            {
                                    
            if (errno == EINTR)
                                            
            continue;
                                    
            else
                                            rval 
            = 0;
                            }
                            
            else if (rval)
                            {
                                    
            if(FD_ISSET(fd, &fset)){
                                            
            if(len > 50){
                                                    ret 
            = read(fd, buf, len);
                                            }
            else{
                                                    
            while(len){
                                                            ret 
            = read(fd, buf+pos, len-ret);
                                                            len 
            -= ret;
                                                            pos 
            += ret;
                                                    }
                                            }
                                    }
                                    
            /*              if ( rval<0 && errno != ENODEV) */
                                    
            /*              {       perror("read"); */
                                    
            /*              } */
                            }
                            
            return rval;
                    }
            }

            posted on 2011-08-01 17:25 Wangkeke 閱讀(508) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): APUE


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


            国产一区二区三区久久精品| 性欧美大战久久久久久久| 亚洲日韩欧美一区久久久久我| 精品国产乱码久久久久久郑州公司| 97香蕉久久夜色精品国产| 久久久久国产一级毛片高清板| 国产精品久久一区二区三区| 99久久国产热无码精品免费| 午夜精品久久久久久99热| 久久久久亚洲AV无码麻豆| 色欲综合久久中文字幕网| 亚洲国产精品18久久久久久| 久久影院综合精品| 97久久精品无码一区二区| 成人资源影音先锋久久资源网| 国产精品福利一区二区久久| 97久久国产亚洲精品超碰热| 999久久久国产精品| 久久久久亚洲精品天堂久久久久久| 欧美伊人久久大香线蕉综合69| 日本亚洲色大成网站WWW久久| 国产69精品久久久久观看软件| 久久久精品国产| 丰满少妇人妻久久久久久| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲午夜精品久久久久久app| 久久精品免费大片国产大片| 天天影视色香欲综合久久| 蜜臀av性久久久久蜜臀aⅴ| 久久久九九有精品国产| 亚洲午夜久久久| 91久久精品91久久性色| 久久无码人妻精品一区二区三区| 欧美亚洲国产精品久久| 久久久久免费精品国产| 色青青草原桃花久久综合| 狠狠色婷婷综合天天久久丁香| 性高湖久久久久久久久AAAAA| 久久99热国产这有精品| 婷婷久久精品国产| 91精品日韩人妻无码久久不卡|