前言

在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. [老老实实学WCF] 第三篇 在IIS中寄存服务

    老老实实学WCF 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我 ...

  3. (转) [老老实实学WCF] 第三篇 在IIS中寄存服务

    第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包括定义和实现服务协定.配置服务.寄宿服务.通过添加服务引用的方式配置客户端并访问服务.我们对WCF的编程生 ...

  4. Egret入门学习日记 --- 第三篇 (书中 3.4 内容)

    第三篇 (书中 3.4 内容) 今天还是要把昨天项目运行后,EXML文件里的界面没有出现的问题解决了才行. 去了群里,没人回.去了官网看文档,看不懂. 不过倒是看到了一个好东西: 还挺便宜啊,一个月要 ...

  5. Java中JNI的使用详解第三篇:JNIEnv类型中方法的使用

    转自: http://blog.csdn.net/jiangwei0910410003/article/details/17466369 上一篇说道JNIEnv中的方法的用法,这一篇我们就来通过例子来 ...

  6. [应用篇]第三篇 JSP 标准标签库(JSTL)总结

    有一种友谊叫做: "陪我去小卖部." "不去," "我请你" "走." 你想起了谁:胖先生?还有人陪你吗? JSP 标准 ...

  7. 第三篇:C++ 中的几种初始化

    前言 阅读C++教材时,想必你听过复制初始化,直接初始化,值初始化这三个概念吧.笔者本人常将其混淆,遂在此记录下它们的具体含义以便日后查阅. 复制初始化( copy-initialization ) ...

  8. Python进阶【第三篇】Python中的基本数据类型

    一.运算符 1.算术运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 二.基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1 ...

  9. 【磁盘/文件系统】第三篇:标准磁盘分区流程针对parted(一般硬盘容量大于2T(但是小于2T也可以进行分区);分区数最大是支持100多个分区)

    说明: 在 Linux 上可以采用 parted 来对磁盘进行分区 1.通过 fdisk -l 可以查看磁盘是否存在, 由于使用的是大磁盘(大于2T),fdisk 不能用来作为分区工具了,而应该使用 ...

随机推荐

  1. win10下Visual Studio 2015,C++ x64编译zmq

    PS.本人编译过程踩得坑,记录备忘 下载:(1)官网:http://zeromq.org/intro:get-the-software,有简明的编译方式,cmake的,这里不多赘述 (2)到GitHu ...

  2. 制作可以 SSH 登录的 Docker 镜像

    Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作. 执行这个命令就把源地址改为阿里的: curl https://git.oschina.net/feedao/Docker_shell ...

  3. angularJS 第一天 使用模型与控制器绑定数据

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  4. 【VBA研究】利用DateAdd函数取上月或上年同期的日期

    作者:iamlaosong DateAdd函数返回一个日期.这一日期加上了一个时间间隔.通过这个函数能够计算非常多我们须要的日期,比方上月上年同期日期等. 语法 DateAdd(interval, n ...

  5. Josephus排列

    思考与分析: 对于m为常数,能够用循环链表,用head,tail标志头尾指针使其易于表示循环结构.循环输出后删除结点n次,每次外层循环时.内层都固定循环m次.所以执行时间为O(mn)=O(n). 对于 ...

  6. JAVA 并发编程-应用篇

    提到java多线程不免有些人会头大.非常多概念都是非常理解可是真正到了实战的时候又是不知道怎样操作了.以下就结合实际项目来说说多线程的应用. 业务需求: 举例:批量插入10万条用户的相关活动优惠券 操 ...

  7. 真正理解红黑树,真正的(Linux内核里大量用到的数据结构,且常被二货问到)

    作为一种数据结构.红黑树可谓不算朴素.由于各种宣传让它过于神奇,网上搜罗了一大堆的关于红黑树的文章,不外乎千篇一律,介绍概念,分析性能,贴上代码,然后给上罪恶的一句话.它最坏情况怎么怎么地...    ...

  8. Cookie的新增,设置与清除

    addCookieBtn.addEventListener('click',function () { document.cookie='imooc=www.imooc.com;expires=201 ...

  9. 安装好Oracle和PLSQLDeveloper后,PLSQLDeveloper登录时没有可选数据库和连接为问题

    1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files ...

  10. extjs经典form的submit()和ajax()

    extjs 的submit: // 发送请求                this.formPanel.getForm().submit({                            u ...