select中檔案描述符上限為什麼是1024?

2021-10-16 12:50:29 字數 740 閱讀 3573

select中存放檔案描述符的陣列大小fd_setsize為1024

程序的檔案描述符上限預設是1024,正是因為這個原因,select設計時才把陣列大小設計為1024

程序的檔案描述符上限是可以手動修改的

# 檢視程序的檔案描述符上限

ulimit -n

# 修改程序的檔案描述符上限為2048,臨時修改,只對當前shell有效

ulimit -shn 2048

vi /etc/security/limits.conf

* hard nofile 65536

* soft nofile 65536

但是select的陣列大小改不了 (╯‵□′)╯︵┻━┻,要改只能重新編譯核心

除了每個程序的檔案描述符有上限以外,系統還有乙個總的上限,預設是100262

# 檢視系統的檔案描述符上限,方法一

sysctl -a | grep file

-max

# 檢視系統的檔案描述符上限,方法二

cat /

proc

/sys/fs/

file

-max

# 修改系統的檔案描述符上限

sysctl -w fs.

file

-max=

2048

# 使修改生效

sysctl -p

linux中檔案描述符

在linux系統中,所有東西都可以看成是檔案,檔案又可以分為普通檔案,目錄檔案,鏈結檔案和裝置檔案。檔案描述符是核心為了高效管理已被開啟的檔案所建立的索引,是乙個非負整數用於指代被開啟的檔案,所有執行i o操作的系統呼叫都是通過檔案描述符。程式剛剛啟動的時候,0是標準輸入,1是標準輸出,2是錯誤輸出...

mysql 檔案描述符 檔案描述符

toc 首先,linux的世界裡一切皆為檔案,無論是裝置還是乙個socket連線。檔案又可分為 普通檔案 目錄檔案 鏈結檔案和裝置檔案。檔案描述符 file descriptor 是核心為了高效管理已被開啟的檔案所建立的索引,其是乙個非負整數 通常是小整數 用於指代被開啟的檔案,所有執行i o操作的...

檔案描述符

檔案描述符 是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。檔案描述符的優點 相容posix標準,許多 linux 和unix 系統呼叫都依賴於它。檔案描述符的缺點 不能移植到unix以外的系統上去,也不直觀。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案...