前言

  在POSIX标准中,定义了许多限制。这些限制大约分为五类,不同类型的限制获取的方式不一样。

限制值分类

  1. 不变的最小值

  这类型的限制值是静态的,固定的。

  2. 不变值

  同上

  3. 运行时可以增加的值

  这类型的限制值在程序运行时会发生动态的变化。

  4. 运行时不变的值( 可能不确定 )

  这类型的限制值在程序运行时不变,但它不是完全静态的,和内存空间等环境有关。

  PS:所谓可能不确定是指这样的值可能是没有上限的

  5. 路径名可变值( 可能不确定 )

  这类型的限制值随着路径的变化而变化。

1,2类型限制值获取

  对于1,2类型的限制值,我们可以直接到头文件中获取到:

 #include <stdio.h>
#include <stdlib.h> // 1,2类型的限制值包含于下头文件中
#include <limits.h> int main(int argc, char **argv)
{
printf("%s : %d\n", "每个进程的最大文件数", _POSIX_OPEN_MAX); return ;
}   

运行测试

3,4类型限制值获取

  对于第3,4种类型的限制值,我们需要调用函数 sysconf 来获取:

 #include <stdio.h>
#include <stdlib.h> // 用于限制值获取的三个函数包含在下头文件中
#include <unistd.h> int main(int argc, char **argv)
{
long p; p = sysconf(_SC_CHILD_MAX);
printf("%s : %ld\n", "每个实际用户ID的最大进程数", p); return ;
}

运行测试

5类型限制值的获取

  对于第5种类型的限制值,我们需要调用函数 pathconf 或者 fpathconf 来获取:

 #include <stdio.h>
#include <stdlib.h> // 用于限制值获取的三个函数包含在下头文件中
#include <unistd.h> int main(int argc, char **argv)
{
long p; p = pathconf("/home/fangmeng/1", _PC_NAME_MAX);
printf("%s : %ld\n", "文件连接数的最大值", p); return ;
}

运行测试

说明

  1. 限制值的这几种分类有些混乱。有些限制值在一个给定的实现上是固定的( 可以在头文件中找到 ),但在另一个给定的实现上可能是变化的( 需要调用函数获取 )。

  2. 在实际开发中,对于“ 不确定 ”的限制值类型,我们要做特别的处理。请参考我的下一篇文章 - “ 不确定 "限制值的使用。

POSIX标准中的 “ 限制 ”的更多相关文章

  1. 第三篇:POSIX标准中的 “ 限制 ”

    前言 在POSIX标准中,定义了许多限制.这些限制大约分为五类,不同类型的限制获取的方式不一样. 限制值分类 1. 不变的最小值 这类型的限制值是静态的,固定的. 2. 不变值 同上 3. 运行时可以 ...

  2. 二、linux IO 编程---系统调用和POSIX标准和标准IO

    2.1 系统调用 2.1.1 概念 所谓系统调用(system call)是指曹错系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的特殊服务. 应用程序可以 ...

  3. 文件操作相关函数(POSIX 标准 open,read,write,lseek,close)

    POSIX标准 open函数属于Linux中系统IO,用于“打开”文件,代码打开一个文件意味着获得了这个文件的访问句柄. int fd = open(参数1,参数2,参数3): int fd = op ...

  4. Web标准中用于改善Web应用程序性能的各种方法总结

    提起Web应用程序中的性能改善,广大开发者们可能会想到JavaScript与DOM访问等基于各种既存技术的性能改善方法.最近,各种性能改善方法被汇总成为一个Web标准. 本文对Web标准中所包含的各种 ...

  5. UNIX标准化及实现之POSIX标准可选头文件

    POSIX标准定义的可选头文件 头文件 说明 <aio.h> 异步I/O <mqueue.h> 消息队列 <pthread.h> 线程 <sched.h> ...

  6. UNIX标准化及实现之POSIX标准扩展头文件

    POSIX标准定义的XSI(X/Open System Interface)扩展头文件 头文件 说明 <cpio.h> cpio归档值 <dlfcn.h> 动态链接 <f ...

  7. UNIX标准化及实现之POSIX标准必需头文件

    POSIX标准定义的必需头文件 头文件 说明 <dirent.h> 目录项 <fcntl.h> 文件控制 <fnmatch.h> 文件名匹配类型 <glob. ...

  8. 对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   C标准库里<ctype.h>中声明了一个函数: int isspace(int c); 该函数判断字符c是否 ...

  9. C标准中一些预定义的宏

    C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏(双下滑线) 意义 __DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字) __ ...

随机推荐

  1. Linux 系统自动备份数据库及定时任务的设置

    首先想到数据库的自动备份,由于涉及业务原因需要在每天固定的时间去调用方法执行备份.如果不考虑业务要求,只考虑实现的话可以通过Linux系统提供的定时任务去完成备份操作. 本文讲的就是利用Linux系统 ...

  2. bzoj 1196 公路修建问题

    bzoj 1196: [HNOI2006]公路修建问题 Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情 ...

  3. 【BZOJ1579】Revamping Trails(分层图,最短路,堆)

    题意:每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i (1 <= ...

  4. 【vijos1144】小胖守皇宫(树形DP)

    描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫 ...

  5. 转 Python爬虫入门二之爬虫基础了解

    静觅 » Python爬虫入门二之爬虫基础了解 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以 ...

  6. Yii CActiveForm 客户端验证(enableClientValidation)和自定义验证

    使用Yii的CActiveForm默认使用服务器端模型(model)的rules规则验证数据. 但这会导致无谓的请求提交,比较好的方式是为了用户体验在客户端也验证,而为了安全性,在服务器端和数据库也做 ...

  7. pycharm上传代码到码云(详细)

    如要转载 麻烦请您备注好原文出处!!!!(谢谢合作!) >>首先要去码云注册个账号 提示(尽量使用英文名)创建用户名 使用邮箱登录 >>然后创建库  >填写项目的基础信息 ...

  8. 猴子都能懂的git教程链接

    http://backlogtool.com/git-guide/cn/intro/intro1_1.html

  9. 一个能让你了解所有函数调用顺序的Android库

    http://mobile.51cto.com/android-536059.htm 原理 本库其实并没有什么黑科技,本库也没有java代码,核心就是2个build.gradle中的task.首先,原 ...

  10. uitableview使用reloaddata不管用

    原因在于决定row number得array变动后没有再次将其count赋值给numberOfRowsInSection中返回的成员变量.致使没有其作用