/***************************************************************
> File Name: rlimit_sysconf.c
> Author: lxg
> Mail: liuxingen@nsfocus.com
> Created Time: 2015年06月22日 星期一 10时28分54秒
***************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<errno.h>
#include<sys/time.h>
#include<sys/resource.h>
int main(int argc, char *argv[])
{
int max_fd = -1;
struct rlimit rlim;
if((max_fd = sysconf(_SC_OPEN_MAX)) == -1)
{
fprintf(stderr, "sysconf _SC_OPEN_MAX error:%s", strerror(errno));
}
if(getrlimit(RLIMIT_NOFILE, &rlim) == -1)
{
fprintf(stderr, "getrlimit RLIMIT_NOFILE error:%s\n", strerror(errno));
}
printf("sysconf _SC_OPEN_MAX=%d, getrlimit RLIMIT_NOFILE=%lld\n", max_fd, (long long)rlim.rlim_cur);
return 0;
}
lxg@lxg-X240:~/station/TLPI/chapter_36$ ulimit -n
2048
系统中RLIMIT_NOFILE的输出
lxg@lxg-X240:~/station/TLPI/chapter_36$ ./rlimit_sysconf
sysconf _SC_OPEN_MAX=2048, getrlimit RLIMIT_NOFILE=2048
rlimit_sysconf的运行结果
lxg@lxg-X240:~/station/TLPI/chapter_36
ulimit?n1024lxg@lxg?X240: /station/TLPI/chapter36 ulimit -n
1024
修改系统的RLIMIT_NOFILE值为1024
lxg@lxg-X240:~/station/TLPI/chapter_36$ ./rlimit_sysconf
sysconf _SC_OPEN_MAX=1024, getrlimit RLIMIT_NOFILE=1024
rlimit_sysconf的运行结果
从上面的测试结果来看:getrlimit和sysconf至少在某些参数的结果上来看是功能一致的。
原文地址:http://blog.csdn.net/liuxingen/article/details/46591893