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

            厚積薄發,滴水穿石

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

            Select的使用

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

            int select(int maxfdp,//所有文件描述符的最大值加1
                      fd_set *readfds,//關注的可讀描述符集
                      fd_set *writefds,//關注的可寫描述符集                                 
                      fd_set *errorfds,//要關注的異常描述符集              
                      struct timeval *timeout//超時時間
                       ); 
            //從觸摸屏讀取數據
            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 閱讀(515) 評論(0)  編輯 收藏 引用 所屬分類: APUE

            亚洲精品无码久久久久sm| 久久综合九色综合欧美狠狠| 色综合久久综精品| 9191精品国产免费久久| 波多野结衣AV无码久久一区| 久久婷婷五月综合97色| 99久久国产宗和精品1上映| 久久国产欧美日韩精品免费| 久久久青草久久久青草| A级毛片无码久久精品免费| 久久精品国产亚洲av麻豆蜜芽| 色婷婷综合久久久久中文一区二区| 久久水蜜桃亚洲av无码精品麻豆| 国产精品无码久久综合网| 久久久久人妻一区二区三区| 免费观看久久精彩视频| 午夜久久久久久禁播电影| 久久精品国产亚洲AV不卡| 91精品国产高清久久久久久国产嫩草| 久久精品国产色蜜蜜麻豆| 久久精品蜜芽亚洲国产AV| 久久久久亚洲精品天堂| 美女久久久久久| 一本一道久久a久久精品综合| 久久久久成人精品无码 | 久久综合五月丁香久久激情| 性色欲网站人妻丰满中文久久不卡| 久久国产视屏| 国产无套内射久久久国产| 久久综合给合久久国产免费 | 精品久久国产一区二区三区香蕉| 国产精品欧美久久久久天天影视 | 欧美精品一区二区精品久久| 精品熟女少妇AV免费久久| 热久久视久久精品18| 一本综合久久国产二区| 亚洲另类欧美综合久久图片区| 久久久久免费视频| 久久久久亚洲国产| 久久精品国产亚洲AV蜜臀色欲| 国内精品久久久久久久久电影网|