summaryrefslogblamecommitdiff
path: root/src/misc/ulimit.c
blob: f0eee3a0692e11d4a870187b48958a19038d721e (plain) (tree)


















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