Changeset View
Changeset View
Standalone View
Standalone View
/tmp/exechelp-posix.c
Context not available. | |||||
int | int | ||||
get_max_fds (void) | get_max_fds (void) | ||||
{ | { | ||||
int max_fds = -1; | int max_fds = INT32_MAX; | ||||
#if 0 | |||||
fprintf(stderr,"start:\t\tmax_fds:%10d\n", max_fds); | |||||
#endif | |||||
#ifdef HAVE_GETRLIMIT | #ifdef HAVE_GETRLIMIT | ||||
struct rlimit rl; | struct rlimit rl; | ||||
# ifdef RLIMIT_NOFILE | # ifdef RLIMIT_NOFILE | ||||
if (!getrlimit (RLIMIT_NOFILE, &rl)) | if (!getrlimit (RLIMIT_NOFILE, &rl)) | ||||
max_fds = rl.rlim_max; | max_fds = rl.rlim_max; | ||||
#if 0 | |||||
fprintf(stderr,"RLIMIT_NOFILE:\tmax_fds:%10d\n", max_fds); | |||||
#endif | |||||
# endif | # endif | ||||
# ifdef RLIMIT_OFILE | # ifdef RLIMIT_OFILE | ||||
if (max_fds == -1 && !getrlimit (RLIMIT_OFILE, &rl)) | if (!getrlimit (RLIMIT_OFILE, &rl)) | ||||
max_fds = rl.rlim_max; | max_fds = (rl.rlim_max < max_fds) ? rl.rlim_max : max_fds; | ||||
#if 0 | |||||
fprintf(stderr,"RLIMIT_OFILE:\tmax_fds:%10d\n", max_fds); | |||||
#endif | |||||
# endif | # endif | ||||
#endif /*HAVE_GETRLIMIT*/ | #endif /*HAVE_GETRLIMIT*/ | ||||
#ifdef _SC_OPEN_MAX | #ifdef _SC_OPEN_MAX | ||||
if (max_fds == -1) | |||||
{ | { | ||||
long int scres = sysconf (_SC_OPEN_MAX); | long int scres = sysconf (_SC_OPEN_MAX); | ||||
if (scres >= 0) | if (scres >= 0) | ||||
max_fds = scres; | max_fds = (scres < max_fds) ? scres : max_fds; | ||||
#if 0 | |||||
fprintf(stderr,"_SC_OPEN_MAX:\tmax_fds:%10d\n", max_fds); | |||||
#endif | |||||
} | } | ||||
#endif | #endif | ||||
#ifdef _POSIX_OPEN_MAX | #ifdef _POSIX_OPEN_MAX | ||||
if (max_fds == -1) | max_fds = (_POSIX_OPEN_MAX < max_fds) ? _POSIX_OPEN_MAX : max_fds; | ||||
max_fds = _POSIX_OPEN_MAX; | #if 0 | ||||
fprintf(stderr,"_POSIX_OPEN_MAX:max_fds:%10d\n", max_fds); | |||||
#endif | |||||
#endif | #endif | ||||
#ifdef OPEN_MAX | #ifdef OPEN_MAX | ||||
if (max_fds == -1) | max_fds = (OPEN_MAX < max_fds) ? OPEN_MAX : max_fds; | ||||
max_fds = OPEN_MAX; | #if 0 | ||||
fprintf(stderr,"OPEN_MAX:\tmax_fds:%10d\n", max_fds); | |||||
#endif | |||||
#endif | #endif | ||||
if (max_fds == -1) | max_fds = (max_fds > 256) ? 256 : max_fds; | ||||
max_fds = 256; /* Arbitrary limit. */ | |||||
#if 0 | |||||
fprintf(stderr,"return:\t\tmax_fds:%10d\n", max_fds); | |||||
#endif | |||||
return max_fds; | return max_fds; | ||||
} | } | ||||
Context not available. |