| #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; | |
| } |