使用者嘗試在 Go 程式中設定 ulimit -n使用 setrlimit 和 getrlimit 系統呼叫將其限制在程式內而不是全域。然而,在嘗試設定該值時出現錯誤,提示「無效參數」。
發現問題是由於 Linux 32 的 Getrlimit 和 Setrlimit 中的 Go bug 造成的-位元分佈。這些錯誤現已修復,可以採取以下步驟來解決問題:
更新到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中文網其他相關文章!