ulimit.c 368 B

12345678910111213141516171819
  1. #include <sys/resource.h>
  2. #include <ulimit.h>
  3. #include <stdarg.h>
  4. long ulimit(int cmd, ...)
  5. {
  6. struct rlimit rl;
  7. getrlimit(RLIMIT_FSIZE, &rl);
  8. if (cmd == UL_SETFSIZE) {
  9. long val;
  10. va_list ap;
  11. va_start(ap, cmd);
  12. val = va_arg(ap, long);
  13. va_end(ap);
  14. rl.rlim_cur = 512ULL * val;
  15. if (setrlimit(RLIMIT_FSIZE, &rl)) return -1;
  16. }
  17. return rl.rlim_cur / 512;
  18. }