<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 功能強大 支持多語言、二開方便! 廣告
                ### 文件描述符 Linux很重要的設計思想就是一切皆文件,網絡是文件,鍵盤等外設也是文件,很神奇吧?于是所有資源都有了統一的接口,開發者可以像寫文件那樣通過網絡傳輸數據,我們也可以通過`/proc/`的文件看到進程的資源使用情況。 內核給每個訪問的文件分配了文件描述符(File Descriptor),它本質是一個非負整數,在打開或新建文件時返回,以后讀寫文件都要通過這個文件描述符了。 ### 應用 我們想想操作系統打開的文件這么多,不可能他們共用一套文件描述符整數吧?這樣想就對了,Linux實現時這個fd其實是一個索引值,指向每個進程打開文件的記錄表。 POSIX已經定義了STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO三個常量,也就是0、1、2。這三個文件描述符是每個進程都有的,這也解釋了為什么每個進程都有編號為0、1、2的文件而不會與其他進程沖突。 文件描述符幫助應用找到這個文件,而文件的打開模式等上下文信息存儲在文件對象中,這個對象直接與文件描述符關聯。 ### 限制 注意了,每個系統對文件描述符個數都有限制。我們網上看到配置`ulimit`也是為了調大系統的打開文件個數,因為一般服務器都要同時處理成千上萬個起請求,記住socket連接也是文件哦,使用系統默認值會出現莫名奇怪的問題。 講文件描述符其實是為高深莫測的epoll做鋪墊,掌握epoll對進程已經有很深的理解了。
                  <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>

                              哎呀哎呀视频在线观看