Heim >Backend-Entwicklung >Golang >Warum führt das Festlegen von „ulimit -n' aus einem Go-Programm auf Linux-32-Bit-Distributionen zu einem Fehler „Ungültiges Argument'?

Warum führt das Festlegen von „ulimit -n' aus einem Go-Programm auf Linux-32-Bit-Distributionen zu einem Fehler „Ungültiges Argument'?

DDD
DDDOriginal
2024-11-03 06:51:02870Durchsuche

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

Wie setze ich ulimit -n aus einem Go-Programm heraus?

Problem

Ein Benutzer hat versucht, ulimit -n aus einem Go-Programm heraus festzulegen Beschränken Sie es innerhalb des Programms und nicht global, indem Sie die Systemaufrufe setrlimit und getrlimit verwenden. Beim Versuch, den Wert festzulegen, ist jedoch ein Fehler mit der Meldung „Ungültiges Argument“ aufgetreten.

Lösung

Es wurde festgestellt, dass das Problem auf Go-Fehler in Getrlimit und Setrlimit für Linux 32 zurückzuführen war. Bitverteilungen. Diese Fehler wurden inzwischen behoben und die folgenden Schritte können unternommen werden, um das Problem zu beheben:

  1. Aktualisierung des Go-Standardzweigtipps.Dazu gehören auch die Fehlerbehebungen.
  2. Erstellen Sie das Programm mit der aktualisierten Go-Version neu.

Ergebnisse

Nach dem Update auf den Standard-Zweigtipp von Go und dem Neuaufbau des Programms wird das Es wird das erwartete Verhalten beobachtet:

$ ./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}

Hinweis: Bei Linux/amd64-Distributionen ist das Problem nicht aufgetreten. Das Problem trat spezifisch bei Linux-32-Bit-Distributionen auf.

Das obige ist der detaillierte Inhalt vonWarum führt das Festlegen von „ulimit -n' aus einem Go-Programm auf Linux-32-Bit-Distributionen zu einem Fehler „Ungültiges Argument'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn