Posted on 2012-03-26 22:37
Onway 閱讀(974)
評論(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.shnenglu.com/Onway/archive/2015/12/08/212438.html