首頁 > 後端開發 > Golang > 為什麼在 Linux 32 位元發行版上的 Go 程式中設定 `ulimit -n` 會導致「無效參數」錯誤?

為什麼在 Linux 32 位元發行版上的 Go 程式中設定 `ulimit -n` 會導致「無效參數」錯誤?

DDD
發布: 2024-11-03 06:51:02
原創
869 人瀏覽過

Why does setting `ulimit -n` from a Go program on Linux 32-bit distributions result in an

如何在 Go 程式中設定 ulimit -n?

問題

使用者嘗試在 Go 程式中設定 ulimit -n使用 setrlimit 和 getrlimit 系統呼叫將其限制在程式內而不是全域。然而,在嘗試設定該值時出現錯誤,提示「無效參數」。

發現問題是由於 Linux 32 的 Getrlimit 和 Setrlimit 中的 Go bug 造成的-位元分佈。這些錯誤現已修復,可以採取以下步驟來解決問題:

  1. 更新 Go 預設分支提示。 這將包括錯誤修復。
  2. 使用更新後的 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板