从shell中获取系统限制和选项
终端输入getconf value [pathname]
[root@bogon code]# getconf ARG_MAX
2097152
[root@bogon code]# getconf NAME_MAX /root //涉及路径名的在后面都要带一个路径,随便一个路径都可以
255 //最大路径名称长度
在程序运行时获取限制和选项
来看一下sysconf函数的参数
[root@bogon code]# cat getlimit.c
#include<stdio.h>
#include<unistd.h>
#include<limits.h>
int main()
{
long id=sysconf(_SC_ARG_MAX);//sysconf里面的值应该是_SC系列常量之一,其它的好像不行,例如换成ARG_MAX就不行,失败返回-1,好吧,我又懒得检查是否调用成功了
printf("%ld\n",id);
return 0;
}
[root@bogon code]# gcc getlimit.c
[root@bogon code]# ./a.out
2097152
[root@bogon code]#
程序运行时获取与文件相关的限制
先看一下pathconf和fpathconf的参数
[root@bogon code]# cat filelimit.c
#include<stdio.h>
#include<fcntl.h>
#include<unistd.h>
int main()
{
int fd=open("/root/code/a.c",O_RDWR);
long len=fpathconf(fd,_PC_NAME_MAX);
long namelen=pathconf("/root",_PC_NAME_MAX);
long pathlen=pathconf("/root",_PC_PATH_MAX);
long pipelen=pathconf("/root",_PC_PIPE_BUF);
printf("%ld\n%ld\n%ld\n%ld\n",len,namelen,pathlen,pipelen);
return 0;
}
[root@bogon code]# gcc filelimit.c
[root@bogon code]# ./a.out
255
255
4096
4096
[root@bogon code]#