UNIX/Linux 系统实现限制
2016-07-03 10:41
253 查看
1. 操作系统实现限制
标准定义了操作系统在实现时的限制规定某些最大值最小(至少)是多少,实际实现中可以更大,严格符合此标准的应用则应小于这个最小值
规定某些最小值最大(最多)是多少,实际实现中可以更小,严格符合此标准的应用则应大于这个最大值
即实际的实现范围应比标准规定的范围更广,这样可以满足更大的需求
即严格符合标准的应用应在标准规定的范围内,这样比较具有可移植性
标准定义的限制值往往加了 _POSIX_ 或 _XOPEN_ 前缀,系统的具体实现值去掉这些前缀,获取限制值时函数中限制值名称参数再加上 _SC_ 或_PC_ 前缀
2. 限制的种类
1. 编译时限制
在头文件中定义例如,短整型的最大值是什么
2. 运行时限制
要求进程调用相关函数来获得限制值例如,文件名最多多少个字符(依赖于运行的文件系统)
1. 操作系统相关的运行时限制
sysconf 函数2. 文件系统相关的运行时限制
pathconf 函数fpathconf 函数
例如,文件名有多少个字符
3. ISO C 限制
所有编译时限制都列在limits.h 中整型值的编译时限制列在 limits.h 中
浮点数的限制列在 float.h 中
文件相关的限制
文件相关限制举例
限制 | 包含文件 | 含义 |
---|---|---|
FOPEN_MAX | stdio.h | 可以同时打开的标准 I/O 流的最小个数 |
TMP_MAX | stdio.h | 由 tmpnam 函数产生的唯一文件名的最大个数 |
FILENAME_MAX |
4. POSIX 限制
文件相关限制举例限制 | 包含文件 | 含义 |
---|---|---|
STREAM_MAX | 同 FOPEN_MAX | |
NAME_MAX | 替代 FILENAME_MAX | |
PATH_MAX | 替代 FILENAME_MAX |
1. 编译时限制分类(常量)
1. 数值限制
LONG_BIT, SSIZE_MAX 和 WORD_BIT2. 最小值
在 limits.h 中定义了25个可接受最小值的常量_POSIX_OPEN_MAX
_POSIX_PATH_MAX
实现值为去掉_POSIX_前缀
3. 最大值
_POSIX_CLOCKERS_MIN2. 运行时限制分类(函数调用)
1. 运行时可增加值
CHARCLASS_NAME_MAXCOLL_WEIGHTS_MAX
LINE_MAX
NGROUPS_MAX
RE_DUP_MAX
2. 运行时不变值(可能不确定)
可能定义在给定系统的头文件中,也可能需要调用函数ARG_MAX
ATEXIT_MAX
在 limits.h 中定义了17个常量
3. 其他不变值
NL_ARGMAXNL_MSGMAX
NL_SETMAX
NL_TEXTMAX
4. 路径名可变值
即在不同的路径下,限制值是不同的FILESIZEBITS
LINK_MAX
MAX_CANON
MAX_INPUT
NAME_MAX
PATH_MAX
PIPE_BUF
SYMLINK_MAX
5. XSI 限制
1. 最小值
NL_LANGMAXNZERO
_XOPEN_IOV_MAX
_XOPEN_NAME_MAX
_XOPEN_PATH_MAX
在 limits.h 中定义
2. 运行时不变值
IOV_MAXPAGE_SIZE5
6. 获取运行时限制的实现值
1. 操作系统相关的运行时限制
#include <unistd.h> long sysconf(int name);
name 参数以
_SC_开头
2. 文件系统相关的运行时限制
#include <unistd.h> long pathconf(const char *pathname, int name); long fpathconf(int fd, int name);
name 参数以
_PC_开头
3. 限制文件
pathconf.symsysconfig.sym
这两个文件包含了用制表符分隔的限制名和符号列表(即实现值,用幻数表示)
7. 不确定的运行时限制
对于编译时限制,这些限制值可能没有在头文件中定义对于运行时限制,这些限制值可能是未定义的
例如
路径名最大长度
最大打开文件数
相关文章推荐
- POSIX 是什么?让我们听听 Richard Stallman 的诠释
- 应用领航:盘点那些年我们一起追过的OS
- 无奇不有!盘点各国自己开发的操作系统
- Flash简单加密 限制 Flash 在指定域名/网址中播放的方法
- 浏览器 cookie 限制
- 可自定义oem的萝卜家园 Ghost XP 新春装机版 V200801 下载
- C#实现判断操作系统是否为Win8以上版本
- access的备注字段限制64K
- jQuery 限制输入字符串长度
- php限制ip地址范围的方法
- 在ASP.NET 2.0中操作数据之二十三:基于用户对修改数据进行限制
- asp下实现IP限制函数代码
- 限制只能输入数字的实现代码
- js获取本机操作系统类型的两种方法
- PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
- jQuery限制图片大小的方法
- 简单实现限制uploadify上传个数
- Linux操作系统添加新硬盘方法
- Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
- java如何获取本地操作系统进程列表