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

  • sysconf 函数的参数格式: “_SC_ + 限制项名称”,如:CHILD_MAX 限制值指每个实际用户 ID 可以启动的最大进程数,调用 sysconf(_SC_CHILE_MAX) 即可获得其实时限制值
  • pathconf 函数的参数格式: “_PC_ + 限制项名称“,格式类似,如:LINK_MAX 指单个文件的最大硬链接数,因不同的文件系统中的限制不同,所以此值与文件所在的路径位置有关,调用 pathconf(“/home/xxx.file", _PC_LINK_MAX)可获得其限制值
  1. #include <unistd.h>
  2. long sysconf(int name)
  3. long pathconf(const char *path, int name)
  4. long lpathconf(const char *path, int name)
  5. 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 函数的返回值表示该跟径名称的最大长度(若指定的是相对目录,则返回的是相对路径的最大长度限制,而不是对应的绝对路径限制)

[01]APUE:sysconf / pathconf的更多相关文章

  1. [12]APUE:高级 I/O

    一.分散聚离(向量) I/O [a] readv / writev #include <sys/uio.h> ssize_t readv(int fd, const struct iove ...

  2. 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)

    Charm Bracelet    POJ 3624 就是一道典型的01背包问题: #include<iostream> #include<stdio.h> #include& ...

  3. [08]APUE:进程控制

    [a] getpid / getppid / getuid / geteuid / getgid / getegid #include <unistd.h> pid_t getpid(vo ...

  4. 01背包问题:POJ3624

    背包问题是动态规划中的经典问题,而01背包问题是最基本的背包问题,也是最需要深刻理解的,否则何谈复杂的背包问题. POJ3624是一道纯粹的01背包问题,在此,加入新的要求:输出放入物品的方案. 我们 ...

  5. Java高级架构师(一)第01节:整体课程概览

    本课程专注于构建:高可扩展性.高性能.大数据量.高并发.分布式的系统架构. 从零开始.全面系统.成体系的软件架构课程,循序渐进的讲述构建上述系统架构所需要的各种技术知识和技能. 适应人群: 1:有一定 ...

  6. 第01讲:Flink 的应用场景和架构模型

    你好,欢迎来到第 01 课时,本课时我们主要介绍 Flink 的应用场景和架构模型. 实时计算最好的时代 在过去的十年里,面向数据时代的实时计算技术接踵而至.从我们最初认识的 Storm,再到 Spa ...

  7. Hadoop技巧(01):插件,终端权限

    阅读目录 序 HDFS权限 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 在ha ...

  8. [16]APUE:套接字

    [a] socket / socketpair #include <sys/socket.h> int socket(int domain, int type, int protocol) ...

  9. [15]APUE:pipe / FIFO

    管道 pipe 一.概述 管道(pipe / FIFO)是一种文件,属于 pipefs 文件系统类型,可以使用 read.write.close 等系统调用进行操作 其本质是内核维护了一块缓冲区与管道 ...

随机推荐

  1. Android中如何搭建一个WebServer

    今天终于把老大交代的任务搞完了,感觉收获挺多的,所以就写一篇来记录一下吧,首先还是来看一下,老大们的需求 需求: 希望移动端的用户标识(IMEI)和HTML页面的用户标识(Cookie)连接起来,其中 ...

  2. Service4

    DNS解析的作用• 为什么需要DNS系统– www.baidu.com 与 119.75.217.56,哪个更好记?– 互联网中的114查号台/导航员 • DNS服务器的功能– 正向解析:根据注册的域 ...

  3. Linux-vim编辑器 常用命令 复制粘贴

    Linux-vim编辑器 一.vim三种工作模式 1.1.命令模式 在此模式下,可以使用上.下.左.右键或者 k.j.h.l 命令进行光标移动,还可以对文件内容进行复制.粘贴.替换.删除等操作. 1. ...

  4. 记录解决java.io.IOException: Server returned HTTP response code: 500 for URL:xxxxxxxx

    踩坑经历 因为项目需要去对接别的接口,使用URLConnection POST请求https接口,发送json数组时遇到java.io.IOException: Server returned HTT ...

  5. (动态改变数据源遇到的问题)ORACLE11g:No Dialect mapping for JDBC type: -9解决方案

    在动态改变数据源时 hibernate配置不能使用Oracle官方的方言(org.hibernate.dialect.Oracle10gDialect) 做法写一个方言扩展类,缺什么类型,添加什么类型 ...

  6. linux get current thread count and system threads limit

    get current thread count grep -s '^Threads' /proc/[0-9]*/status | awk '{ sum += $2; } END { print su ...

  7. 【Java多线程系列随笔一】浅析 Java Thread.join()

    一.在研究join的用法之前,先明确两件事情. 1.join方法定义在Thread类中,则调用者必须是一个线程, 例如: Thread t = new CustomThread(); //这里一般是自 ...

  8. Python CookBook(self report)

    Python CookBook 中文版:https://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html 英文版:https:// ...

  9. 面向对象(四)——classmethod、staticmethod装饰器(绑定方法与非绑定方法)

    classmethod.staticmethod装饰器 一.绑定方法与非绑定方法 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): (1) 绑定到类的方法:用classmethod ...

  10. hdu6396 /// fread()快速读入挂

    题目大意: 给定n k 给定主角具有的k种属性 给定n个怪兽具有的k种属性和打死该怪兽后能得到的k种属性对应增幅 求主角最多能打死多少怪兽和最终主角的k种属性 k最大为5 开5个优先队列贪心 快速读入 ...