Onway

我是一只菜菜菜菜鸟...
posts - 61, comments - 56, trackbacks - 0, articles - 34

unix系统的限制,选项和功能测试宏

Posted on 2012-03-26 22:37 Onway 阅读(928) 评论(0)  编辑 收藏 引用 所属分类: 使用说明
(仅限个人理解,强烈欢迎指正!)
一,理解
1,限制常量是对某个常量进行数值上的大小规定。其值必定是一个数值,编译时限制通常定义在<limits.h>头文件中。
2,选项常量是用来决定对某项功能是否支持。其值也是一个数值,但通常是0,-1,1或者一个表示年月的数值又或者未定义其值。编译时选项通常定义在<unistd.h>头文件中。
3,功能测试宏用来在编译时控制一些头文件的版本。通常定义在<features.h>头文件中。

二,编译时常量的命名
1,POSIX的编译时限制以_POSIX_前缀开头,XSI编译时限制以NL_或者_XOPEN_前缀开头。特定系统实现的编译时限制不带前缀,对应于POSIX限制去掉前缀(其值应该比POSIX要大)。
2,选项用以表明是否对某个标准的某项功能的支持。其编译时常量通常是以_POSIX_或者_XOPEN_做前缀。没有特定系统实现的编译时选项。
3,功能测试宏常量只是以下划线_开头,然后就没什么规则了。功能测试宏只在编译时使用。详见man feature_test_macros。

三,运行时确定限制或选项的三个函数
1,如果某个限制或选项无法从编译时确定,那就需要调用以下三个函数之一:sysconf,pathconf,fpathconf。后两个函数是跟路径相关的。
2,三个函数都需要一个整型常量参数,该参数命名规则为编译时的常量名去掉前缀,加上_SC_或者_PC_(调用跟路径相关的两个函数)前缀。
3,注意其返回值,详见函数的man手册。

四,confstr函数和getconf命令
1,confstr用于获取依赖于配置的字符串变量。其参数只有几个,详见man手册。
2,getconf命令是用于查询系统配置变量,即编译时的限制和选项常量的值。该命令都可以查询到confstr函数的字符串变量。

http://www.cppblog.com/Onway/archive/2015/12/08/212438.html

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理