Odpowiedzi:
Myślę, że zamieszanie wynika z faktu, że podstawowe wywołanie systemowe, które otacza ulimit, nazywa się setrlimit .
fragment strony man ulimit
Funkcja ulimit () kontroluje granice procesu. Ograniczenia procesu, które mogą być kontrolowane przez tę funkcję, obejmują maksymalny rozmiar pojedynczego pliku, który można zapisać (jest to równoważne z użyciem setrlimit () z RLIMIT_FSIZE).
Dodatkowo, jeśli spojrzysz na setrlimit
stronę man, wywoływana jest struktura danych, która zawiera informacje o limicie rlimit
.
fragment strony man setrlimit
getrlimit i setrlimit odpowiednio pobierają i ustawiają limity zasobów. Każdy zasób ma przypisany miękki i twardy limit, zdefiniowany przez strukturę rlimit (argument rlim dla getrlimit () i setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
Odnosząc się do strony manuala ulimit , jest to polecenie powłoki bash, aby kontrolować ograniczenia systemu i część wbudowanych poleceń bash, takich jak printf, read, source itp.
Odnosząc się do strony getrlimits , reprezentuje interfejsy API za pomocą C / C ++ przy użyciu wywołań systemowych do kontroli ograniczeń systemowych. Dodatkowa dokumentacja glibc na temat wyjaśnień ograniczeń (= limitów zasobów) lepiej.
ulimit
mogą być dwie rzeczy:
interfejs API POSIX 7 C, który został wycofany na korzyść getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Aplikacje powinny używać funkcji getrlimit () lub setrlimit () zamiast przestarzałej funkcji ulimit ().
Nie było tak w przypadku sim
odpowiedzi na POSIX 6.
W systemie GNU / Linux getrlimit()
i ulimit()
są realizowane za pomocą sys_getrlimit
wywołania systemowego. Nie ma sys_ulimit
.
nieaktualne narzędzie interfejsu wiersza polecenia POSIX 7: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
Można go zaimplementować za pomocą ulimit()
lub getrlimit()
.