Posted on 2012-03-26 22:37
Onway 閱讀(974)
評論(0) 編輯 收藏 引用 所屬分類:
使用說明
(僅限個人理解,強烈歡迎指正!)一,理解
1,限制常量是對某個常量進行數(shù)值上的大小規(guī)定。其值必定是一個數(shù)值,編譯時限制通常定義在<limits.h>頭文件中。
2,選項常量是用來決定對某項功能是否支持。其值也是一個數(shù)值,但通常是0,-1,1或者一個表示年月的數(shù)值又或者未定義其值。編譯時選項通常定義在<unistd.h>頭文件中。
3,功能測試宏用來在編譯時控制一些頭文件的版本。通常定義在<features.h>頭文件中。
二,編譯時常量的命名
1,POSIX的編譯時限制以_POSIX_前綴開頭,XSI編譯時限制以NL_或者_XOPEN_前綴開頭。特定系統(tǒng)實現(xiàn)的編譯時限制不帶前綴,對應(yīng)于POSIX限制去掉前綴(其值應(yīng)該比POSIX要大)。
2,選項用以表明是否對某個標準的某項功能的支持。其編譯時常量通常是以_POSIX_或者_XOPEN_做前綴。沒有特定系統(tǒng)實現(xiàn)的編譯時選項。
3,功能測試宏常量只是以下劃線_開頭,然后就沒什么規(guī)則了。功能測試宏只在編譯時使用。詳見man feature_test_macros。
三,運行時確定限制或選項的三個函數(shù)
1,如果某個限制或選項無法從編譯時確定,那就需要調(diào)用以下三個函數(shù)之一:sysconf,pathconf,fpathconf。后兩個函數(shù)是跟路徑相關(guān)的。
2,三個函數(shù)都需要一個整型常量參數(shù),該參數(shù)命名規(guī)則為編譯時的常量名去掉前綴,加上_SC_或者_PC_(調(diào)用跟路徑相關(guān)的兩個函數(shù))前綴。
3,注意其返回值,詳見函數(shù)的man手冊。
四,confstr函數(shù)和getconf命令
1,confstr用于獲取依賴于配置的字符串變量。其參數(shù)只有幾個,詳見man手冊。
2,getconf命令是用于查詢系統(tǒng)配置變量,即編譯時的限制和選項常量的值。該命令都可以查詢到confstr函數(shù)的字符串變量。
http://www.shnenglu.com/Onway/archive/2015/12/08/212438.html