• [01]APUE:sysconf / pathconf


    sysconf / pathconf:用于运行时确定特定系统实际支持的限制值

    • sysconf 函数的参数格式: “_SC_ + 限制项名称”,如:CHILD_MAX 限制值指每个实际用户 ID 可以启动的最大进程数,调用 sysconf(_SC_CHILE_MAX) 即可获得其实时限制值
    • pathconf 函数的参数格式: “_PC_ + 限制项名称“,格式类似,如:LINK_MAX 指单个文件的最大硬链接数,因不同的文件系统中的限制不同,所以此值与文件所在的路径位置有关,调用 pathconf(“/home/xxx.file", _PC_LINK_MAX)可获得其限制值
    #include <unistd.h>
    long sysconf(int name)
    long pathconf(const char *path, int name)
    long lpathconf(const char *path, int name)
    long fpathconf(int fd, int name)

    适用于 sysconf 的限制项(引用时添加 _SC_ 前缀)如下:

    • CHILD_MAX:单个进制可以同时运行的进程数量
    • CLK_TCK:每秒种滴答数
    • HOST_NAME_MAX:gethostbyname 函数返回的主机名最大长度
    • IOV_MAX:readv、writev 等分散/聚离 IO 函数可以使用的 iovec 结构体最大数量
    • OPEN_MAX:单个进程可以打开的最大文件数量
    • PAGE_SIZE:内存分页大小
    • RE_DUP_MAX:正则表达式使用 {m, n} 形式表示重复次数时,函数 regexec 和 regcomp 可以处理的上限值,即 n 的值
    • SEM_NSEMS_MAX:单个进程可以使用的信号量最大数量
    • SEM_VALUE_MAX:单个信号量可以注册的最大值
    • SYMLOOP_MAX:解析路径时,可以遍历的符号链接的数量上限(系统防止无限循环)
    • TIMER_MAX:每个进程的最大定时器个数

    适用于 pathconf 的限制项(引用时添加 _PC_ 前缀)如下:

    • LINK_MAX:以普通文件为对象,表示单个文件可以关联的最大硬链接数量
    • NAME_MAX:只能以目录为对象,pathconf 函数的返回值表示该目录下的文件名称可以包含的最大字节数(不含末尾的 null 字符)
    • PATH_MAX:只能以目录为对象,pathconf 函数的返回值表示该跟径名称的最大长度(若指定的是相对目录,则返回的是相对路径的最大长度限制,而不是对应的绝对路径限制)
  • 相关阅读:
    053-49
    053-3
    053-204
    053-491
    053-205
    053-57
    053-149
    053-47
    053-150
    回答2
  • 原文地址:https://www.cnblogs.com/hadex/p/6550045.html
Copyright © 2020-2023  润新知