• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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,...)9 long 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