diff options
-rw-r--r-- | src/misc/ulimit.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/misc/ulimit.c b/src/misc/ulimit.c new file mode 100644 index 00000000..f0eee3a0 --- /dev/null +++ b/src/misc/ulimit.c @@ -0,0 +1,19 @@ +#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; +} |