1 #include <sys/resource.h> 2 #include <ulimit.h> 3 #include <stdarg.h> 4 #include <unsupported_api.h> 5 #ifndef __LITEOS__ 6 #include <limits.h> 7 #endif 8 ulimit(int cmd,...)9long ulimit(int cmd, ...) 10 { 11 struct rlimit rl; 12 13 UNSUPPORTED_API_VOID(LITEOS_A); 14 getrlimit(RLIMIT_FSIZE, &rl); 15 if (cmd == UL_SETFSIZE) { 16 long val; 17 va_list ap; 18 va_start(ap, cmd); 19 val = va_arg(ap, long); 20 va_end(ap); 21 rl.rlim_cur = 512ULL * val; 22 if (setrlimit(RLIMIT_FSIZE, &rl)) return -1; 23 } 24 #ifndef __LITEOS__ 25 return rl.rlim_cur == RLIM_INFINITY ? LONG_MAX : rl.rlim_cur / 512; 26 #else 27 return rl.rlim_cur / 512; 28 #endif 29 } 30