Câu trả lời:
Tôi nghĩ rằng sự nhầm lẫn xuất phát từ thực tế là cuộc gọi hệ thống cơ bản mà kết thúc tốt đẹp được gọi là setrlimit .
đoạn trích từ trang người đàn ông ulimit
Hàm ulimit () sẽ kiểm soát các giới hạn quá trình. Các giới hạn quy trình có thể được kiểm soát bởi chức năng này bao gồm kích thước tối đa của một tệp có thể được ghi (điều này tương đương với việc sử dụng setrlimit () với RLIMIT_FSIZE).
Ngoài ra, nếu bạn nhìn vào setrlimit
trang man, cấu trúc dữ liệu cơ bản chứa thông tin giới hạn được gọi rlimit
.
đoạn trích từ trang man setrlimit
getrlimit và setrlimit get và đặt giới hạn tài nguyên tương ứng. Mỗi tài nguyên có giới hạn mềm và cứng liên quan, như được xác định bởi cấu trúc rlimit (đối số rlim cho cả getrlimit () và setrlimit ()):
struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ };
Nhắc đến trang man ulimit , đó là lệnh bash shell để kiểm soát các phần tử của hệ thống và một phần của bash-buildin như printf, read, source, v.v.
Giới thiệu trang getrlimits , nó đại diện cho các API thông qua C / C ++ bằng cách sử dụng các lệnh gọi hệ thống để kiểm soát sự hồi sinh của hệ thống. Tài liệu glibc bổ sung về giải thích rlimits (= giới hạn tài nguyên) tốt hơn.
ulimit
có thể là hai điều:
giao diện API POSIX 7 C không được ủng hộ getrlimit()
: http://pub.opengroup.org/onlinepub/9699919799/fiances/ulimit.html
Các ứng dụng nên sử dụng các hàm getrlimit () hoặc setrlimit () thay vì hàm ulimit () lỗi thời.
Đây không phải là trường hợp khi được sim
trả lời trên POSIX 6.
Trên GNU / Linux getrlimit()
và ulimit()
được thực hiện với lệnh sys_getrlimit
gọi hệ thống. Không có sys_ulimit
.
tiện ích POSIX 7 CLI không bị phản đối: http://pub.opengroup.org/onlinepub/9699919799/utilities/ulimit.html
Nó có thể được thực hiện với một trong hai ulimit()
hoặc getrlimit()
.