C POSIX 限制
1 数值限制
LONG_BIT
SSIZE_MAX
WORD_BIT
2 <limits.h>中POSIX.1 最小值
这些最小值,表示当前市面的所有符合POSIX标准的系统。最少都是这么大。
所以不要看这些参数都带有 MAX 字样。
但是这些最小值在实际应用中太小了。例如:
- _POSXI_PATH_MAX 限制为255 ,路径名可能会超过这一限制。
在生产中尽量不要用_POSIX_OPEN_MAX和\_POSIX_PATH_MAX这两个常量。
| 名称 | 说明:最小可接受值 | 值 |
|---|---|---|
| _POSIX_ARG_MAX | exec 函数的参数长度 | 4096 |
| _POSIX_CHILD_MAX | 每个实际用户ID的自进程数 | 25 |
| _POSIX_DELAYTIMER_MAX | 定时器最大超限运行次数 | 32 |
| _POSIX_HOST_NAME_MAX | gethostname 函数返回的主机名长度 | 255 |
| _POSIX_LINK_MAX | 至一个文件的链接数 | 8 |
| _POSIX_LOGIN_NAME_MAX | 登录名的长度 | 9 |
| _POSIX_MAX_CANNON | 终端规范输入队列的字节数 | 255 |
| _POSIX_MAX_INPUT | 终端输入队列的可用空间 | 255 |
| _POSIX_NAME_MAX | 文件名中的字节数,不包括终止null字节 | 14 |
| _POSIX_NGROUPS_MAX | 每个进程同事添加的组ID数 | 8 |
| _POSIX_OPEN_MAX | 每个进程的打开文件数 | 20 |
| _POSIX_PATH_MAX | 路径名中的字节数,包括终止null字节 | 256 |
| _POSIX_PIPE_BUF | 能原子地写到一个管道中的字节数 | 512 |
| _POSIX_RE_DUP_MAX | 当使用间隔表示法{m,n}时,regexec和regcomp 函数允许的基本正则表达式重复的发生次数 | 255 |
| _POSIX_RTSIG_MAX | 为应用预留的实时信号编号个数 | 8 |
| _POSIX_SEM_NSEMS_MAX | 一个进程可以同时使用的信号量个数 | 256 |
| _POSIX_SEM_VALUE_MAX | 信号量可持有的值 | 32767 |
| _POSIX_SIGQUEUE_MAX | 一个进程可发送和挂起的排队信号的个数 | 32 |
| _POSIX_SSIZE_MAX | 能存在ssize_t对象中的值 | 32767 |
| _POSIX_STREAM_MAX | 一个进程能同时打开的标准I/O流数 | 8 |
| _POSXI_SYMLINK_MAX | 符号链接中的字节数 | 255 |
| _POSIX_SYMLOOP_MAX | 在解析路径名时,可遍历的符号链接数 | 8 |
| _POSIX_TIMER_MAX | 每个进程的定时器数目 | 32 |
| _POSIX_TTY_NAME_MAX | 终端设备名长度,包括终止null字节 | 9 |
| _POSIX_TZNAME_MAX | 时区名字节数 | 6 |
3 最大值
_POSIX_CLOCKDERS_MIN
4 运行时可以增加的值
CHARCLASS_NAME_MAX
COLL_WEIGHTS_MAX
LINE_MAX
NGROUPS_MAX
RE_DUP_MAX
5 <limits.h> 中POSIX.1 运行时不变值
| 名称 | 说明 | 最小可接受值 |
|---|---|---|
| ARG_MAX | exec 函数族的参数最大长度 | _POSIX_ARG_MAX |
| ATEXIT_MAX | 可用atexit函数登记最大函数个数 | 32 |
| CHILD_MAX | 每个实际用户ID的子进程最大个数 | _POSIX_CHILD_MAX |
| DELAYTIMER_MAX | 定时器最大超限运行次数 | _POSIX_DELAYTIMER_MAX |
| HOST_NAME_MAX | gethostname 返回的主机名长度 | _POSIX_HOST_NAME_MAX |
| LOGIN_NAME_MAX | 登录名最大长度 | _POSIX_LOGIN_NAME_MAX |
| OPEN_MAX | 赋予新建文件描述符的最大值 + 1 | _POSIX_OPEN_MAX |
| PAGESIZE | 系统内存页大小(以字节为单位) | 1 |
| RTSIG_MAX | 为应用程序预留的实时信号的最大个数 | _POSIX_RTSIG_MAX |
| SEM_NSEMS_MAX | 一个进程可以使用的信号量最大个数 | _POSIX_SEM_NSEMS_MAX |
| SEM_VALUE_MAX | 信号量的最大值 | _POSIX_SEM_VALUE_MAX |
| SIGQUEUE_MAX | 一个进程可排队信号最大个数 | _POSIX_SIGQUEUE_MAX |
| STREAM_MAX | 一个进程一次可打开的标准I/O流的最大个数 | _POSIX_STREAM_MAX |
| SYNLOOP_MAX | 路径解析过程中可访问的符号链接数 | _POSIX_SYMLOOP_MAX |
| TIMER_MAX | 一个进程的定时器最大个数 | _POSIX_TIMER_MAX |
| TTY_NAME_MAX | 终端设备名长度,其中包括终止的null字节 | _POSIX_TTY_NAME_MAX |
| TZNAME_MAX | 时区名的字节数 | _POSIX_TZNAME_MAX |
6 其他不变值
NL_ARGMAX
NL_MSGMAX
NL_SETMAX
NL_TEXTMAX
7 路径名可变值
FILESIZEBITS
LINK_MAX
MAX_CANON
MAX_INPUT
NAME_MAX
PATH_MAX
PIPE_BUF
SYMLINK_MAX