>  기사  >  백엔드 개발  >  Linux 32비트 배포판의 Go 프로그램에서 `ulimit -n`을 설정하면 \"잘못된 인수\" 오류가 발생하는 이유는 무엇입니까?

Linux 32비트 배포판의 Go 프로그램에서 `ulimit -n`을 설정하면 \"잘못된 인수\" 오류가 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-03 06:51:02811검색

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용 Getrlimit 및 Setrlimit 32의 Go 버그로 인해 발생한 것으로 확인되었습니다. 비트 분포. 이후 이러한 버그는 수정되었으며 문제를 해결하려면 다음 단계를 수행할 수 있습니다.

  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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.