[C++] 纯文本查看 复制代码
#include <sys/time.h>
#include <sys/resource.h>
int getrlimit(int resource, struct rlimit *rlim);
int setrlimit(int resource, const struct rlimit *rlim);
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
int main()
{
struct rlimit limits;
/* RLIMIT_NOFILE 表示一个进程可以打开的最大文件描述符数 */
if ( getrlimit( RLIMIT_NOFILE, &limits) == 0 ) {
if (limits.rlim_cur == RLIM_INFINITY)
printf ("RLIMIT_NOFILE Soft Limit is infinite\n");
else
printf ("RLIMIT_NOFILE soft limit: %lld\n", (long long int)limits.rlim_cur);
if ( limits.rlim_max == RLIM_INFINITY )
printf ("RLIMIT_NOFILE Hard Limit is infinite\n");
else
printf ("RLIMIT_NOFILE hard limit: %lld\n", (long long int)limits.rlim_max);
}
printf ("Now, use setrlimit() function to change this limit.\n");
limits.rlim_max = 8192;
(void) setrlimit(RLIMIT_NOFILE, &limits);
limits.rlim_cur = 8192;
(void) setrlimit(RLIMIT_NOFILE, &limits);
if ( getrlimit( RLIMIT_NOFILE, &limits) == 0 ) {
if (limits.rlim_cur == RLIM_INFINITY)
printf ("RLIMIT_NOFILE Soft Limit is infinite\n");
else
printf ("RLIMIT_NOFILE soft limit: %lld\n", (long long int)limits.rlim_cur);
if ( limits.rlim_max == RLIM_INFINITY )
printf ("RLIMIT_NOFILE Hard Limit is infinite\n");
else
printf ("RLIMIT_NOFILE hard limit: %lld\n", (long long int)limits.rlim_max);
}
return 0;
}