diff --git a/src/misc/ulimit.c b/src/misc/ulimit.c new file mode 100644 index 0000000000000000000000000000000000000000..f0eee3a0692e11d4a870187b48958a19038d721e --- /dev/null +++ b/src/misc/ulimit.c @@ -0,0 +1,19 @@ +#include +#include +#include + +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; +}