(六)檔案描述符及最大開啟檔案個數

2021-07-25 16:40:49 字數 990 閱讀 5050

首先要明確一點,在linux系統中一切都可以看成是檔案,你的文件是檔案、程式是檔案、裝置也是檔案、顯示屏、鍵盤、網口都可以看做是檔案,而且在linux中也確確實實是這樣。而檔案又可分為:普通檔案、目錄檔案、鏈結檔案和裝置檔案。

檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是乙個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行i/o操作的系統呼叫都要通過檔案描述符進行操作。

乙個程序預設開啟3個檔案描述符:

stdin_fileno   0

stdout_fileno  1

stderr_fileno   2

posix標準規定:新開啟檔案返回檔案描述符表中未使用的最小檔案描述符。

在編寫檔案操作的或者網路通訊的軟體時,可能會遇到「too many open files」的問題。這主要是因為檔案描述符是系統的乙個重要資源,雖然說系統記憶體有多少就可以開啟多少的檔案描述符,但是在實際實現過程中核心是會做相應的處理的,一般最大開啟檔案數會是系統記憶體的10%(以kb來計算)(稱之為系統級限制),檢視系統級別的最大開啟檔案數可以使用cat /proc/sys/fs/file-max命令檢視。

相關命令介紹:

檢視當前系統允許開啟最大檔案個數

cat /proc/sys/fs/file-max

當前預設設定最大開啟檔案個數1024

檢視修改限制命令的使用方法

ulimit -a

修改預設設定最大開啟檔案個數為4096

ulimit -n 4096

程序最大開啟檔案描述符個數

不過在看下節之前,首先知道在本機下開啟的檔案描述符個數的個數不能超過1024,除去3個輸入輸出還有epoll的檔案描述符,所以程式傳入的最大開啟檔案描述符的引數不能超過1020.如果超過服務端報錯結果如下 通過檢視乙個程序的最多開啟個數,ulimit n設定臨時設定開啟個數 limit n10001...

Linux最大開啟檔案描述符數

1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 1000000 proc sys fs file max 2.永久性 在 etc sysctl.conf中設定 fs.fi...

Linux最大開啟檔案描述符數

標籤 linux 最大檔案描述符 2013 10 28 19 34 12959人閱讀 收藏舉報 linux 3 1.系統最大開啟檔案描述符數 proc sys fs file max a.檢視 cat proc sys fs file max 186405 2.設定 a.臨時性 echo 10000...