20 lines
368 B
C
20 lines
368 B
C
#include <sys/resource.h>
|
|
#include <ulimit.h>
|
|
#include <stdarg.h>
|
|
|
|
long ulimit(int cmd, ...)
|
|
{
|
|
struct rlimit rl;
|
|
getrlimit(RLIMIT_FSIZE, &rl);
|
|
if (cmd == UL_SETFSIZE) {
|
|
long val;
|
|
va_list ap;
|
|
va_start(ap, cmd);
|
|
val = va_arg(ap, long);
|
|
va_end(ap);
|
|
rl.rlim_cur = 512ULL * val;
|
|
if (setrlimit(RLIMIT_FSIZE, &rl)) return -1;
|
|
}
|
|
return rl.rlim_cur / 512;
|
|
}
|