Title here
Summary here
文件描述符(File Descriptor,FD)係喺操作系統中,用嚟表示已打開嘅文件或其他輸入/輸出資源嘅整數標識符。 佢係操作系統同應用程序之間進行文件操作嘅橋樑。
喺 Linux 中,文件描述符係一個非負整數,操作系統為每個打開嘅文件或輸入/輸出(I/O)資源(如管道、網絡套接字等)分配一個文件描述符。 每當進程請求打開一個文件或資源時,操作系統會返回一個文件描述符,以後進程就可以通過呢個描述符嚟訪問該文件或資源。
所有進程都會自動打開下面 3 個文件描述符。
描述符 | 名稱 | 描述 |
---|---|---|
0 | STDIN | 標準輸入 |
1 | STDOUT | 標準輸出 |
2 | STDERR | 標準錯誤 |
例如:命令嘅重定向就直接使用咗上面嘅文件描述符。
上面嘅 >
同 1>
係一樣嘅。
操作系統通過文件描述符嚟管理文件操作。常見嘅文件操作(如讀取、寫入、關閉)通常都需要文件描述符。 下面係一啲常見嘅操作及其文件描述符嘅使用:
open()
系統調用會返回一個文件描述符。
通過文件描述符讀取內容。
通過文件描述符將數據寫入文件。
關閉文件描述符,以釋放系統資源。
每個進程都有一個對應嘅 /proc/PID/fd/
目錄,其中包含咗所有該進程打開嘅文件描述符嘅符號鏈接。
文件描述符為進程提供咗一種抽象。程序可以使用統一嘅接口進行各種 I/O 操作,而唔使關心底層嘅物理設備細節。
例如,讀取文件、從網絡套接字接收數據以及從管道中讀取數據,都可以使用相同嘅 read()
函數嚟實現,呢啲都係通過文件描述符嚟統一管理嘅。