Rumah >pembangunan bahagian belakang >Golang >Mengapakah menetapkan `ulimit -n` daripada program Go pada pengedaran 32-bit Linux mengakibatkan ralat \'argumen tidak sah\'?

Mengapakah menetapkan `ulimit -n` daripada program Go pada pengedaran 32-bit Linux mengakibatkan ralat \'argumen tidak sah\'?

DDD
DDDasal
2024-11-03 06:51:02870semak imbas

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

Bagaimana untuk menetapkan ulimit -n daripada program Go?

Masalah

Seorang pengguna cuba menetapkan ulimit -n dari dalam program Go ke menyekatnya dalam program dan bukannya secara global, menggunakan panggilan sistem setrlimit dan getrlimit. Walau bagaimanapun, ralat berlaku semasa cuba menetapkan nilai, menyatakan "argumen tidak sah."

Penyelesaian

Telah didapati bahawa isu itu disebabkan oleh pepijat Go dalam Getrlimit dan Setrlimit untuk Linux 32- pengedaran bit. Pepijat ini telah dibetulkan dan langkah berikut boleh diambil untuk menyelesaikan masalah:

  1. Kemas kini kepada petua cawangan lalai Go. Ini akan termasuk pembetulan pepijat.
  2. Bina semula program menggunakan versi Go yang dikemas kini.

Keputusan

Selepas mengemas kini kepada petua cawangan lalai Go dan membina semula program, tingkah laku yang dijangka diperhatikan:

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

Nota: Untuk pengedaran Linux/amd64, isu itu tidak ditemui. Masalahnya adalah khusus untuk pengedaran 32-bit Linux.

Atas ialah kandungan terperinci Mengapakah menetapkan `ulimit -n` daripada program Go pada pengedaran 32-bit Linux mengakibatkan ralat \'argumen tidak sah\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn