
setrlimit(
C++ コード内から )を使用してを(次に&をに設定して )RLIMIT_NOFILE
に設定しようとしましたが、「操作は許可されていません」というエラーが発生します。コードはルートとして実行されます。RLIM_INFINITY
getrlimit
rlim_cur
rlim_max
RLIM_INFINITY
setrlimit()
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
。