답변:
혼동은 ulimit가 감싸는 기본 시스템 호출이 setrlimit 라고하는 사실에서 비롯된 것이라고 생각합니다 .
ulimit 매뉴얼 페이지 에서 발췌
ulimit () 함수는 프로세스 제한을 제어해야합니다. 이 함수로 제어 할 수있는 프로세스 한계에는 쓸 수있는 단일 파일의 최대 크기가 포함됩니다 (RLIMIT_FSIZE와 함께 setrlimit ()를 사용하는 것과 같습니다).
또한 setrlimit
매뉴얼 페이지 를 보면 한계 정보를 포함하는 기본 데이터 구조가 호출 rlimit
됩니다.
setrlimit 매뉴얼 페이지 에서 발췌
getrlimit 및 setrlimit는 각각 자원 제한을 가져오고 설정합니다. 각 자원에는 rlimit 구조 (getrlimit () 및 setrlimit ()에 대한 rlim 인수)에 의해 정의 된대로 소프트 및 하드 한계가 연관되어 있습니다.
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
ulimit man page를 참조 하면 시스템의 한계 와 printf, read, source 등과 같은 bash-builtins 의 일부를 제어하는 bash 쉘 명령입니다 .
getrlimits 페이지를 참조 하면 시스템 호출을 사용하여 시스템 제한을 제어하는 C / C ++를 통해 API를 나타냅니다. 추가 glibc 설명서 는 rlimits (= 자원 제한)를 더 잘 설명합니다.
ulimit
두 가지가 될 수 있습니다.
더 이상 사용되지 않는 POSIX 7 C API 인터페이스 getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
응용 프로그램은 폐기 된 ulimit () 함수 대신 getrlimit () 또는 setrlimit () 함수를 사용해야합니다.
sim
POSIX 6에서 대답 했을 때는 그렇지 않았습니다 .
GNU / Linux에서 getrlimit()
와 ulimit()
으로 구현되는 sys_getrlimit
시스템 호출. 없습니다 sys_ulimit
.
더 이상 사용되지 않는 POSIX 7 CLI 유틸리티 : http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
ulimit()
또는 로 구현할 수 있습니다 getrlimit()
.