1. 限制
Unix系统实现定义了很多幻数和常量,这些在不同程度上依从POSIX,也遵从POSIX.1标准。这就有助于软件的可移植性.以下两种类型的限制是必须的:
1) 编译时限制(例如短整型的最大值是什么)
2) 运行时限制(例如文件名可以有多少个字符)
编译时限制可在头文件中定义,程序在编译时可以包含头文件。但是,运行时限制则要求进程调用一个函数以获取此种限制值.为了解决此类问题:
1) 编译时限制(例如,短整型的最大值是什么?)
2) 不与文件或目录相关联的运行时限制(sysconf函数)
3) 与文件或目录相关联的运行时限制(pathconf和fpathconf函数)
2. 函数原型
#include
long sysconf(int name);
long pathconf(const char *pathname, int name);
long fpathname(int filedes, int name);
所有函数返回值:若成功则返回相应值;若出错则返回-1.
Example:获取当前系统可以同时打开文件的最大数目.
表1 sysconf的限制及name参数,用于标识系统限制.以__SC__开始的常量用作标识运行时限制的sysconf参数
表2 sysconf的限制及name参数,用于标识系统限制.以__PC__开始常量用作标识运行时限制pathconf参数和fpathconf参数.