Adjusted to show side effects and their handling
When dealing with static buffers, successive calls point
to the same memory location and overwrite formers ones...
committer: Markus Bröker <mbroeker@largo.homelinux.org>
/**
* set_limit.c
* Copyright (C) 2008 Markus Broeker
*/
#include <errno.h>
#include <sys/resource.h>
#define MINIMUM (2*1024*1024)
int set_limit (int megs)
{
struct rlimit rlim;
megs *= 1024 * 1024;
rlim.rlim_cur = megs;
rlim.rlim_max = 1.25 * megs;
if (megs >= MINIMUM)
return setrlimit (RLIMIT_AS, &rlim);
errno = ENOMEM;
return -1;
}