Implementation of getrlimit and getdtablesize

This commit is contained in:
Erik van der Kouwe
2009-12-07 19:56:40 +00:00
parent 26ba254a4a
commit bd0933a19b
6 changed files with 127 additions and 0 deletions

View File

@@ -77,6 +77,7 @@ libc_FILES=" \
random.c \
realpath.c \
rindex.c \
rlimit.c \
setenv.c \
setgroups.c \
settimeofday.c \

55
lib/other/rlimit.c Normal file
View File

@@ -0,0 +1,55 @@
/* getdtablesize, getrlimit Author: Erik van der Kouwe
* query resource consumtion limits 4 December 2009
*
* Based on these specifications:
* http://www.opengroup.org/onlinepubs/007908775/xsh/getdtablesize.html
* http://www.opengroup.org/onlinepubs/007908775/xsh/getrlimit.html
*/
#include <errno.h>
#include <limits.h>
#include <sys/resource.h>
#include <unistd.h>
int getdtablesize(void)
{
return OPEN_MAX;
}
int getrlimit(int resource, struct rlimit *rlp)
{
rlim_t limit;
switch (resource)
{
case RLIMIT_CORE:
/* no core currently produced */
limit = 0;
break;
case RLIMIT_CPU:
case RLIMIT_DATA:
case RLIMIT_FSIZE:
case RLIMIT_STACK:
case RLIMIT_AS:
/* no limit enforced (however architectural limits
* may apply)
*/
limit = RLIM_INFINITY;
break;
case RLIMIT_NOFILE:
limit = OPEN_MAX;
break;
default:
errno = EINVAL;
return -1;
}
/* return limit */
rlp->rlim_cur = limit;
rlp->rlim_max = limit;
return 0;
}