1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
# 27aug25 Software Lab. Alexander Burger
(symbols 'ulimit 'pico)
(local) (RLIMIT_STACK RLIMIT_NOFILE RLIMIT_NPROC stack files nproc)
(private) (error rlimit)
(sysdefs "ulimit")
(de error ()
(quit (%@ "strErrno" 'S) 'ulimit) )
(de rlimit (Res Val U)
(use Lim
(nond
((=0
(%@ "getrlimit" 'I Res '(Lim (16 P P))) )
(error) )
(Val
(cons
(*/ (car Lim) U)
(*/ (cadr Lim) U) ) )
((=0
(%@ "setrlimit" 'I Res
(list NIL (16)
(cons (* Val U) 8)
(cons (cadr Lim) 8) ) ) )
(error) )
(NIL Val) ) ) )
# (ulimit~stack ['cnt))
(de stack (KiB)
(prog1
(rlimit RLIMIT_STACK KiB 1024)
(%@ "ulimStk") ) )
# (ulimit~files ['cnt))
(de files (N)
(rlimit RLIMIT_NOFILE N 1) )
# (ulimit~nproc ['cnt))
(de nproc (N)
(rlimit RLIMIT_NPROC N 1) )
|