#include #include #include #include #include #include #include long int ulimit( int cmd, ... ) { va_list ap; struct rlimit rlim; switch (cmd ) { case UL_GETFSIZE: if( getrlimit( RLIMIT_FSIZE, &rlim ) < 0 ) return -1; return rlim.rlim_cur/512; case UL_SETFSIZE: va_start(ap, cmd); rlim.rlim_cur = 512 * va_arg(ap, long int); rlim.rlim_max = rlim.rlim_cur; va_end(ap); return setrlimit( RLIMIT_FSIZE, &rlim ); default: errno = EINVAL; return -1; } /* NOT REACHED */ errno = EINVAL; return -1; }