Syscall BSD#195
svc · unix #195
setrlimit
Définit les limites soft et hard d'une ressource.
Prototype
int setrlimit(u_int which, struct rlimit *rlp);Retour: int
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| which | u_int | - | |
| rlp | struct rlimit | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 195 |
| xnu-1486.2.11 | — | 195 |
| xnu-1504.15.3 | — | 195 |
| xnu-1504.3.12 | — | 195 |
| xnu-1504.7.4 | — | 195 |
| xnu-1504.9.17 | — | 195 |
| xnu-1504.9.26 | — | 195 |
| xnu-1504.9.37 | — | 195 |
Exemples
Raise fd limit
#include <sys/resource.h>
struct rlimit rl;
getrlimit(RLIMIT_NOFILE, &rl);
rl.rlim_cur = rl.rlim_max;
setrlimit(RLIMIT_NOFILE, &rl);Notes
Un non privilégié peut abaisser la hard limit ou monter la soft jusqu'à elle ; seul root peut élever la hard. Certaines limites macOS (RLIMIT_NOFILE, RLIMIT_NPROC) sont aussi bornées par des sysctl comme kern.maxfilesperproc et kern.maxprocperuid. Élever RLIMIT_STACK ne fait pas grandir rétroactivement les stacks de threads existants.
API associées
getrlimitproc_rlimit_controlgetrusagegetdtablesizesetpriority