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