`

打印所有可能的sysconf和pathconf值

阅读更多
#include "apue.h"
#include <errno.h>
#include <limits.h>

static void pr_sysconf(char *,int);
static void pr_pathconf(char *,char *,int);

int main(int argc,char *argv[])
{
	if(argc!=2)
		err_quit("usage: ./printall <dirname>");
	
#ifdef ARG_MAX
	printf("ARG_MAX defined to be %d\n",ARG_MAX+0);
#else
	printf("no symbol for ARG_MAX\n");
#endif

#ifdef _SC_ARG_MAX
	pr_sysconf("ARG_MAX =",_SC_ARG_MAX);
#else
	printf("no symbol for _SC_ARG_MAX\n");
#endif

#ifdef MAX_CANON
	printf("MAX_CANON defined to be %d\n",MAX_CANON+0);
#else
	printf("no symbol for MAX_CANON\n");
#endif

#ifdef _PC_MAX_CANON
	pr_pathconf("MAX_CANON =",argv[1],_PC_MAX_CANON);
#else
	printf("no symbol for _PC_MAX_CANON\n");
#endif

	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){
			if(errno !=0)
				fputs(" (not supported)\n",stdout);
			else
				err_sys("sysconf error");		
		}else{
			fputs(" (no limit)\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){
			if(errno == EINVAL)
				fputs(" (no supported)\n",stdout);
			else
				err_sys("pathocnf error, path = %s",path);
		}else{
			fputs(" (no limit)\n",stdout);	
		}
	}else{
		printf(" %ld\n",val);
	}
}

 

分享到:
评论

相关推荐

    UNIX环境高级编程_第二版中文

    2.5.4 sysconf、pathconf和fpathconf函数  2.5.5 不确定的运行时限制  2.6 选项  2.7 功能测试宏  2.8 基本系统数据类型  2.9 标准之间的冲突  2.10 小结  习题  第3章 文件I/O  3.1 引言  3.2...

    UNIX环境高级编程部分

    2.5.4 sysconf、pathconf和 fpathconf函数 2.5.5 FIPS 151-1要求 2.5.6 限制总结 2.5.7 未确定的运行时间限制 2.6 功能测试宏 2.7 基本系统数据类型 2.8 标准之间的冲突 2.9 小结 习题 第3章 文件I/O 3.1 引言 3.2 ...

    UNIX环境高级编程

    2.5.4 sysconf、pathconf和 fpathconf函数 2.5.5 FIPS 151-1要求 2.5.6 限制总结 2.5.7 未确定的运行时间限制 2.6 功能测试宏 2.7 基本系统数据类型 2.8 标准之间的冲突 2.9 小结 习题 第3章 文件I/O 3.1 引言 3.2 ...

    UNIX环境高级编程(第二版中文)

    2.5.4 sysconf、pathconf和fpathconf函数 32 2.5.5 不确定的运行时限制 38 2.6 选项 42 2.7 功能测试宏 44 2.8 基本系统数据类型 45 2.9 标准之间的冲突 45 2.10 小结 46 习题 46 第3章 文件I/O 47...

    unix环境编程电子书

    28 2.4 标准和实现的关系 28 2.5 限制 29 2.5.1 ISO C限制 29 2.5.2 POSIX限制 30 2.5.3 XSI限制 32 2.5.4 sysconf、pathconf和fpathconf函数 32 2.5.5 不确定的运行时限制 38 2.6 选项 42 2.7 ...

    UNIX环境高级编程和源代码

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    UNIX环境高级编程(PDF)

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    IT行业中必备技能之UNIX最佳学习资料

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    Unix高级编程 pdf

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 ...

    UNIX环境高级编程(中文版+英文版+源代码)

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    UNIX环境高级编程.pdf

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    Unix环境高级编程电子书

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    中文第一版-UNIX环境高级编程

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    UNIX环境高级编程(第二版中文).

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

    UNIX环境高级编程(第二版中文).pdf

    2.5.4 sysconf、pathconf 和fpathconf 函数 24 2.5.5 FIPS 151-1要求 28 2.5.6 限制总结 28 2.5.7 未确定的运行时间限制 29 2.6 功能测试宏 32 2.7 基本系统数据类型 32 2.8 标准之间的冲突 33 2.9 小结 34 习题 34 ...

Global site tag (gtag.js) - Google Analytics