zoukankan      html  css  js  c++  java
  • 第三篇:POSIX标准中的 “ 限制 ”

    前言

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

    限制值分类

           1. 不变的最小值

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

           2. 不变值

           同上

           3. 运行时可以增加的值

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

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

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

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

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

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

    1,2类型限制值获取

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

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

           运行测试

           

    3,4类型限制值获取

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

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 // 用于限制值获取的三个函数包含在下头文件中
     5 #include <unistd.h>
     6 
     7 int main(int argc, char **argv)
     8 {
     9     long p;
    10 
    11     p = sysconf(_SC_CHILD_MAX);
    12     printf("%s : %ld
    ", "每个实际用户ID的最大进程数", p);
    13 
    14     return 0;
    15 }

           运行测试

           

    5类型限制值的获取

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

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 // 用于限制值获取的三个函数包含在下头文件中
     5 #include <unistd.h>
     6 
     7 int main(int argc, char **argv)
     8 {
     9     long p;
    10 
    11     p = pathconf("/home/fangmeng/1", _PC_NAME_MAX);
    12     printf("%s : %ld
    ", "文件连接数的最大值", p);
    13 
    14     return 0;
    15 }

           运行测试

           

    说明

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

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

  • 相关阅读:
    [Chrome_OS]Crosh Shell终端 基础命令
    [HTML5_WebSockets]HTML 5 Web Sockets应用初探
    [HTML5_WebWorkers]利用HTML5的window.postMessage实现跨域通信
    [HTML5_资源]49个超炫的HTML 5示例
    [HTML5_资源]国外模版网站
    [HTML5_JS跨域]JavaScript跨域总结与解决办法
    [HTML5_资源]给网页设计师的30个HTML5学习资源
    [HTML5_WebWorkers]HTML5 web通信(跨文档通信/通道通信)简介
    [HTML5_JQueryMobile]20个很棒的 jQuery Mobile 教程
    LeetCode-513. Find Bottom Left Tree Value
  • 原文地址:https://www.cnblogs.com/muchen/p/6354456.html
Copyright © 2011-2022 走看看