Linux文件描述符的「值」是否始終小於打開的文件限制?Linux文件描述符的值是否總是小於打開的文件限制?
理論上,系統應重新使用封閉文件描述符的標識值。在一個進程中打開1021個文件後,默認情況下,我應該得到的文件描述符值範圍從0,1,2到1023。如果我想打開另一個文件,我必須釋放一些帶有close
的文件描述符,並且當我再次調用open
時,系統將重新使用這些已發佈的標識。所以在這種情況下,文件描述符的最大整數值應該是1023。那是對的嗎 ?
我知道我可以用ulimit -n
,setrlimit
和/proc/sys/fs/file-max
更改打開的文件限制。我只想知道,如果我已使用setrlimit
將打開的文件限制減少到128,那麼我是否可以使用char
變量存儲打開的套接字文件描述符。
謝謝。我的電腦上的getrlimit()的手冊頁僅顯示「RLIMIT_NOFILE:此進程打開文件的最大數量。」 – RichardLiu