#include "ourhdr.h"
static void pr_sysconf(char *,int);
static void pr_pathconf(char *,char *,int);
int main(int argc,char *argv[])
{
if(argc!=2)
{
printf("usage: a.out<dirname>");
}
pr_sysconf("ARG_MAX=",_SC_ARG_MAX);
pr_sysconf("CHILD_MAX=",_SC_CHILD_MAX);
pr_sysconf("cock ticks/second=",_SC_CLK_TCK);
pr_sysconf("NGROUPS_MAX=",_SC_NGROUPS_MAX);
pr_sysconf("OPEN_MAX=",_SC_OPEN_MAX);
#ifdef _SC_STREAM_MAX
pr_sysconf("STRAEM_MAX=",_SC_STREAM_MAX);
#endif
#ifdef _SC_TZNAME_MAX
pr_sysconf("TZNAME_MAX=",_SC_TZNAME_MAX);
#endif
pr_sysconf("_POSIX_JOB_CONTROL=",_SC_JOB_CONTROL);
pr_sysconf("_POSIX_SAVED_IDS=",_SC_SAVED_IDS);
pr_sysconf("_POSIX_VERSION=",_SC_VERSION);
pr_pathconf("MAX_CANON=","/dev/tty",_PC_MAX_CANON);
pr_pathconf("MAX_INPUT=","/dev/tty",_PC_MAX_INPUT);
pr_pathconf("_POSIX_VDISABLE=","/dev/tty",_PC_VDISABLE);
pr_pathconf("LINK_MAX=",argv[1],_PC_LINK_MAX);
pr_pathconf("NAME_MAX=",argv[1],_PC_NAME_MAX);
pr_pathconf("PATH_MAX=",argv[1],_PC_PATH_MAX);
pr_pathconf("PIPE_MAX=",argv[1],_PC_PIPE_BUF);
pr_pathconf("_POSIX_NO_TRUNC=",argv[1],_PC_NO_TRUNC);
pr_pathconf("+POSIX_CHOWN_RESTRICTED=",argv[1],_PC_CHOWN_RESTRICTED);
exit(0);
}
static void pr_sysconf(char *mesg,int name)
{
long val;
fputs(mesg,stdout);
errno=0;
if((val=sysconf(name))<0)
{
if(errno!=0)
printf("sysconf error");
fputs("(not defined)\n",stdout);
}
else
{
printf(" %ld\n",val);
}
}
static void pr_pathconf(char *mesg,char *path,int name)
{
long val;
fputs(mesg,stdout);
errno=0;
if((val=pathconf(path,name))<0){
if(errno!=0)
printf("pathconf error,path=%s",path);
fputs(" (no limit)\n",stdout);
}else
printf(" %ld\n",val);
}
[matcha-vanilla@localhost test]$ cc i.c
[matcha-vanilla@localhost test]$ ./a.out iofile.txt
ARG_MAX= 2621440
CHILD_MAX= 1024
cock ticks/second= 100
NGROUPS_MAX= 65536
OPEN_MAX= 1024
STRAEM_MAX= 16
TZNAME_MAX= 6
_POSIX_JOB_CONTROL= 1
_POSIX_SAVED_IDS= 1
_POSIX_VERSION= 200809
MAX_CANON= 255
MAX_INPUT= 255
_POSIX_VDISABLE= 0
LINK_MAX=pathconf error,path=iofile.txt (no limit)
NAME_MAX=pathconf error,path=iofile.txt (no limit)
PATH_MAX= 4096
PIPE_MAX= 4096
_POSIX_NO_TRUNC= 1
+POSIX_CHOWN_RESTRICTED=pathconf error,path=iofile.txt (no limit)
[matcha-vanilla@localhost test]$