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