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 函数的返回值表示该跟径名称的最大长度(若指定的是相对目录,则返回的是相对路径的最大长度限制,而不是对应的绝对路径限制)

[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. (转)oracle group by 和order by的关系(在一起使用注意事项)

    转:http://lzfhope.blog.163.com/blog/static/636399220092554045196/ 环境:oracle 10g单单group by 或者order by本 ...

  2. JAVA调用R脚本 windwos路径下

    RConnection c = new RConnection();// REXP x = c.eval("source('D:\\\\jiaoben\\\\RJava_test.R',en ...

  3. dubbo使用multicast注册方式消费者无法发现服务的一种情况(我遇到的情况)

    今天做dubbo测试的时候,翻出以前的代码,使用multicast广播地址的方式消费者居然无法发现服务.我的情况是因为启用了vmware虚拟机的网卡,导致了消费者无法发现服务,禁用vmware网卡后可 ...

  4. 记一次面经pm

    记一次面经 介绍下你自己的这个项目. 浅谈一下数据结构.    参考网站    在我的记忆中,数据结构包括链表.线性表.栈与队列.数组.一些排序,比如冒泡排序.快速排序.希尔排序.堆排序等,还有一些树 ...

  5. PAT_A1012#The Best Rank

    Source: PAT A1012 The Best Rank (25 分) Description: To evaluate the performance of our first year CS ...

  6. 常用内置模块(四)——subprocess、re

    常用模块(四) 一.subprocess模块 1.subprocess为子流程模块,用于执行系统命令,该模块在Python全栈开发中不常用 2.常用方法 run 返回一个表示执行结果的对象 call ...

  7. VSCode运行JavaScript代码

    方式一(推荐): 安装插件 open in window, 然后option+b

  8. Git部署项目

    前言 学习Git的目标是要学会如何部署项目.Git是一种版本控制系统,与之对应的还有CVS和SVN,其中CVS和SVN都是集中式的版本控制,而Git是一种分布式的,在现代项目开发中,大多使用Git来管 ...

  9. jeecg问题汇总

    (1)使用代码生成器后记得修改spring扫描配置路径entity,dao,control control在jeecg\src\main\resources\spring-mvc.xml中配置 ent ...

  10. leetcode-第11场双周赛-5089-安排会议日程

    题目描述: 自己的提交: class Solution: def minAvailableDuration(self, slots1: List[List[int]], slots2: List[Li ...