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