ユーザーが Go プログラム内から ulimit -n を設定しようとしました。 setrlimit および getrlimit システム コールを使用して、グローバルではなくプログラム内で制限します。ただし、値を設定しようとすると、「無効な引数」というエラーが発生しました。
この問題は、Linux 32 の Getrlimit および Setrlimit の Go のバグが原因であることが判明しました。ビット分布。これらのバグは修正されており、問題を解決するには次の手順を実行できます:
Go のデフォルト ブランチ チップに更新してプログラムを再ビルドすると、予期した動作が観察されます:
$ ./rlimit {1024 4096} Error Setting Rlimit operation not permitted Rlimit Final {1024 4096} $ sudo ./rlimit [sudo] password for peterSO: {1024 4096} Rlimit Final {999999 999999}
注: Linux/amd64 ディストリビューションの場合、この問題は発生しませんでした。この問題は Linux 32 ビット ディストリビューションに特有のものでした。
以上がLinux 32 ビット ディストリビューション上の Go プログラムから `ulimit -n` を設定すると、「無効な引数」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。