"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Linux 32비트 배포판의 Go 프로그램에서 `ulimit -n`을 설정하면 \"잘못된 인수\" 오류가 발생하는 이유는 무엇입니까?

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

2024-11-06에 게시됨
검색:759

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

  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비트 배포판에서만 발생했습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3