<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                epoll還有一種更高級的使用方法,那就是借鑒封裝的思想,簡單的說就是當某個事情發生了,自動的去處理這個事情。這樣的思想對我們的編碼來說就是設置回調,將文件描述符,對應的事件,和事件產生時的處理函數封裝到一起,這樣當某個文件描述符的事件發生了,回調函數會自動被觸發,這就是所謂的反應堆思想。 從我們之前對epoll的使用上如何去支持反應堆呢?需要重新再認識一下`struct epoll_event`中的`epoll_data_t`結構體: ~~~ typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64; } epoll_data_t; ~~~ 我們之前使用的是共用體上的fd域,如果是要實現封裝思想,光有fd是不夠的,所以轉換思路,看第一個域ptr,是一個泛型指針,指針可以指向一塊內存區域,這塊區域可以代表一個結構體,既然是結構體,那么我們就可以自定義了,將我們非常需要的文件描述符,事件類型,回調函數都封裝在結構體上(我們在信號一章就見識過struct sigaction上有掩碼和回調函數等信息),這樣當我們要監控的文件描述符對應的事件發生之后,我們去調用回調函數就可以了,這樣就可以將文件描述符對應事件的處理代碼梳理的非常清晰。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看