
setrlimit(
我在 C++ 程式碼中使用) 來嘗試將 to 設定RLIMIT_NOFILE
為RLIM_INFINITY
(getrlimit
然後將rlim_cur
&rlim_max
設為RLIM_INFINITY
and setrlimit()
),但出現「不允許操作」錯誤。該程式碼以 root 身份運行。
甚至可以設定RLIM_INFINITY
嗎RLIMIT_NOFILE
?
答案1
RLIMIT_NOFILE
的上限是由 定義的最大值/proc/sys/fs/nr_open
,並且嘗試將其設為高於該值會導致EPERM
。在短時間內(使用內核 2.6.28),可以將其設定為RLIM_INFINITY
,但這會導致某些程式出現巨大的效能問題 - 請參閱恢復提交了解詳情。
這記錄在EPERM
中的相應條目man setrlimit
, 和的描述/proc/sys/fs/nr_open
在man 5 proc
。