Yanıtlar:
Bence kafa karışıklığı, ulimitin bu altta yatan sisteme setrlimit denmesi gerçeğinden kaynaklanıyor .
ulimit man sayfasından alıntı
Ulimit () işlevi işlem sınırlarını kontrol etmelidir. Bu işlev tarafından kontrol edilebilen işlem sınırları, yazılabilecek tek bir dosyanın maksimum boyutunu içerir (bu, RLIMIT_FSIZE ile setrlimit () işlevinin kullanılmasına eşdeğerdir).
Ayrıca setrlimit
man sayfasına bakarsanız , sınır bilgisini içeren temel veri yapısı denir rlimit
.
setrlimit man sayfasından alıntı
getrlimit ve setrlimit sırasıyla kaynak limitlerini alır ve ayarlar. Her kaynağın, rlimit yapısı (getrlimit () ve setrlimit () için rlim argümanı) tarafından tanımlandığı gibi ilişkili bir yumuşak ve sabit sınırı vardır:
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
Değinen Ulimit adam sayfasında , bu sistemin rlimits ve bir kısmını kontrol etmek için bir bash kabuk komut var bash-builtins printf gibi, kaynak okumak vs.
Getrlimits sayfasına atıfta bulunarak , sistem çalışmalarını kontrol etmek için sistem çağrılarını kullanarak C / C ++ aracılığıyla API'leri temsil eder. Ek glibc dokümantasyonu , limitleri (= kaynak sınırları) daha iyi açıklar.
ulimit
iki şey olabilir:
lehine kaldırılan bir POSIX 7 C API arayüzü getrlimit()
: http://pubs.opengroup.org/onlinepubs/9699919799/functions/ulimit.html
Uygulamalar eskimiş ulimit () işlevi yerine getrlimit () veya setrlimit () işlevlerini kullanmalıdır.
sim
POSIX 6'da cevap verildiğinde durum böyle değildi .
GNU / Linux, getrlimit()
ve ulimit()
birlikte uygulanan sys_getrlimit
sistem çağrısı. Yok sys_ulimit
.
kullanımdan kaldırılmış bir POSIX 7 CLI yardımcı programı: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ulimit.html
ulimit()
Veya ile uygulanabilir getrlimit()
.