blob: 1f59e8e619f5588fdd0a1cf3bd394729b3d0192c [file] [log] [blame]
#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;
}