gentconf命令解釋及用法

用途

將系統配置變量值寫入標準輸出。

語法

getconf [ -v specification ] [ SystemwideConfiguration | PathConfiguration PathName ] [ DeviceVariableDeviceName ]

getconf -a

描述

 SystemwideConfiguration 參數調用 getconf 命令,將 SystemwideConfiguration 參數所指定的變量值寫到標準輸出。

用 PathConfiguration 和 PathName 參數調用 getconf 命令,寫入 PathConfiguration 參數爲 PathName 參數指定路徑指定的變量值,到標準輸出。

getconf 命令,用 -a 標誌調用,並寫入全部系統配置變量值到標準輸出。

getconf 命令,用 DeviceVariable 和 DeviceName 參數調用,寫磁盤設備名或位置的值到標準輸出,設備路徑由 DeviceName 參數指定。

如果在系統中定義指定的變量且其值描述爲可從 confstr 子例程得到,則指定變量的值按下列格式寫入:

“%s\n”,< 值 >

否則,如果在系統中定義指定變量,其值按下列格式寫入:

“%d\n”, < 值 >

如果指定變量是有效的但在系統中未定義,則將下列內容寫入標準輸出:

“undefined\n”

如果變量名無效或出現錯誤,就會有一個診斷消息寫入標準錯誤。

標記

-a 規格 顯示了指定規格及版本,其配置變量等待確定。如果該標誌未被指定,返回值將響應一個實現缺省值 XBS5 的相應的編輯環境。
-v 將全部系統配置變量值寫入標準輸出。

參數

PathName 爲 PathConfiguration 參數指定路徑名。
SystemwideConfiguration 指定一個系統配置變量
PathConfiguration 指定一個系統路徑配置變量
DeviceName 指定一個設備路徑名。
DeviceVariable 指定一個設備變量。

當列入下列的表格中的第一列符號被用作 system_var 操作數時,getconf 將產生與用第二列的值調用 confstr 時相同的值:

注:
_CS_AIX_ARCHITECTURE 和 _CS_AIX_BOOTDEV 變量,用做 confstr 參數時,只對 root 用戶可用。

system_var confstr 名稱值
BOOT_DEVICE _CS_AIX_BOOTDEV
MACHINE_ARCHITECHTURE _CS_AIX_ARCHITECTURE
MODEL_CODE _CS_AIX_MODEL_CODE
PATH _CS_PATH
XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILPBIG_OFF32_LINTFLAGS
XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS

環境變量

下列的環境變量影響 getconf的執行:

LANG 爲取消設置或空的國際化變量值提供一個缺省值。如果 LANG 被取消設置或空,則將使用來自依賴實現的 | 缺省語言環境的相應值。如果任何一個國際化變量包含一個無效設置,實用程序將象未定義變量義變量來運行。
LC_CALL 如果設置爲一個非空字符串值,則所有其它國際化變量值會被覆蓋。
LC_CTYPE 確定將文本數據字節序列解釋爲字符的語言環境(例如,在參數中,單字節字符與多字節字符相對)。
LC_MESSAGES 確定用以影響寫入標準錯誤的診斷消息格式和內容的語言環境。
NLSPATH 決定處理 LC_MESSAGES 消息目錄的位置。

系統範圍配置變量

SystemwideConfiguration 參數指定系統配置變量,其值在整個系統中都可用。有兩種系統配置變量:

系統範圍配置變量

系統範圍配置變量包含系統各部分中的最小值。下列的列表定義系統範圍配置變量,這些變量與 getconf 命令一起使用:

_CS_PATH PATH 環境變量值,用以查找命令。
ARG_MAX 用於一個 exec 子例程的參數的最大長度(以字節爲單位),包含環境數據。
BC_BASE_MAX bc 命令使用的 obase 變量允許的最大值。
BC_DIM_MAX bc 命令所允許的一個數組中的最大元素數。
BC_SCALE_MAX bc 命令使用的 scale 變量允許的最大值。
BC_STRING_MAX bc 命令可接受的字符串常量的最大長度。
CHARCLASS_NAME_MAX 字符類名中的最大字節數。
CHAR_BIT 類型 character 的位數。
CHAR_MAX 類型 character 的最大值。
CHAR_MIN 類型 character 的最小值。
CHILD_MAX 每個真實用戶標識同時打開進程的最大數量。
CLK_TCK 由 time 子例程返回的每秒鐘時鐘計數。
COLL_WEIGHTS_MAX 配給在一個語言環境定義文件的 LC_COLLATE 語言環境節中條目的最大權重。
CS_PATH PATH 環境變量值,用以查找命令。
EXPR_NEST_MAX 圓括號內可嵌套的最大表達式數,用於 expr 命令。
INT_MAX 類型的最大值,類型爲 int
INT_MIN 類型的最小值,類型爲 int
LINE_MAX 當實用程序被描述成爲處理文本文件時,命令輸入行(標準輸入或者是其它文件)的最大長度(以字節爲單位)。長度包含換行字符的空間。
LONG_BIT 類型中的位數,類型爲 long int
LONG_MAX 類型的最大值,類型爲 long int
LONG_MIN 類型的最小值,類型爲 long int
MB_LEN_MAX 在所有支持的語言環境中一個字符的最大字節數。
NGROUPS_MAX 每個進程中同時補充的最大組標識數。
NL_ARGMAX 在 printf 和 scanf 子例程調用中的數字最大值。
NL_LANGMAX 在一個 LANG 名中最大字節數。
NL_MSGMAX 最大消息數。
NL_NMAX 一個從 N 到 1 整序映射中最大字節數。
NL_SETMAX 最大設置數。
NL_TEXTMAX 一個消息字符串中最大字節數。
NZERO 缺省進程優先級。
OPEN_MAX 在進程中可同時打開的最大文件數。
PATH 用以查找命令的以冒號相隔的路徑前綴的序列。
RE_DUP_MAX 當使用間隔符號參數時允許正則表達式重複出現次數的最大值,正如 ed 命令使用的 m 和 n 參數。
SCHAR_MAX 類型的最大值,類型爲 signed char
SCHAR_MIN 類型的最小值,類型爲 signed char
SHRT_MAX 類型的最大值,類型爲 short
SHRT_MIN 類型的最小值,類型爲 short
SSIZE_MAX 一個類型爲 ssize_t 的對象的最大值。
STREAM_MAX 一個進程可同時打開的流數。
TMP_MAX 由 tmpnam 子例程生成的唯一路徑名的最小數量。一個應用程序可靠調用 tmpnam子例程的最多次數。
TZNAME_MAX 一個時區名支持的最大字節數(非 TZ 環境變量的長度)。
UCHAR_MAX 類型的最大值,類型爲 unsigned char
UINT_MAX 類型的最大值,類型爲 unsigned int
ULONG_MAX 類型的最大值,類型爲 unsigned long int
USHRT_MAX 類型的最大值,類型爲 unsigned short int
WORD_BIT 字或類型 int 中的位數。
KERNEL_BITMODE 內核的位方式,32 位或 64 位.
REAL_MEMORY 真實內存大小。
HARDWARE_BITMODE 計算機硬件的位方式,32 位或 64 位。
MP_CAPABLE 計算機微處理器容量。

系統標準配置變量

系統標準配置變量包含由一個特殊系統標準所要求的最小值。_POSIX_POSIX2_ 和 _XOPEN_ 前綴顯示變量包含分別由 POSIX 1003.1、POSIX 1003.2 和 X/Open 系統標準要求的系統特性最小值。系統標準是系統滿足的用來支持特定系統標準的全系統最小值。實際配置值可能超出這些標準。用於 getconf 命令的這些系統標準配置變量的定義如下:

_POSIX_ARG_MAX 用於 exec 子例程的參數的最大長度(以字節爲長度),包含環境數據。
_POSIX_CHILD_MAX 每個真實用戶標識同時打開進程的最大數量。
_POSIX_JOB_CONTROL 如果系統支持作業控制,則值爲 1。
_POSIX_LINK_MAX 到單個文件的最大鏈接數。
_POSIX_MAX_CANON 在終端規範輸入隊列中的最大字節數。
_POSIX_MAX_INPUT 在終端輸入隊列中允許的最大字節數。
_POSIX_NAME_MAX 文件名中的最大字節數(不包含終止空字符)。
_POSIX_NGROUPS_MAX 每個進程中同時補充的最大組標識數。
_POSIX_OPEN_MAX 在進程中可同時打開的最大文件數。
_POSIX_PATH_MAX 路徑名中的最大字節數。
_POSIX_PIPE_BUF 寫入管道時保證成爲原子的最大字節數。
_POSIX_SAVED_IDS 值爲1。每個進程具有保存的 set-user-ID 和保存的 set-group-ID。
_POSIX_SSIZE_MAX 可存進一個類型爲 ssize_t 對象的最大值。
_POSIX_STREAM_MAX 一個進程可同時打開的流數。
_POSIX_TZNAME_MAX 一個時區名支持的最大字節數(非 TZ 環境變量的長度)。
_POSIX_VERSION 操作系統遵守的 POSIX 1 標準(C 語言綁定)的版本。
_XOPEN_CRYPT 如果系統支持 X/Open 加密功能組則值爲 1。
_XOPEN_ENH_I18N 如果系統支持 X/Open 增強國際化功能組則值爲 1。
_XOPEN_SHM 如果系統支持 X/Open 共享內存功能組則值爲 1。
_XOPEN_VERSION 操作系統所遵守的 X/Open 可移植性指南的版本。
_XOPEN_XCU_VERSION 操作系統所遵守的 X/Open 命令和實用程序規範的版本。
_XOPEN_XPG2 如果系統支持 1987 年 1 月卷 2 的 X/Open 可移植性指南,XVS 系統調用和庫,則值爲 1,否則爲未定義。
_XOPEN_XPG3 如果系統支持 1992 年 2 月 的 X/Open 規範,系統接口和頭第三版,則缺省值爲 1,否則爲未定義。
_XOPEN_XPG4 如果系統支持 1992 年 7 月 的 X/Open CAE 規範,系統接口和頭第 4 版,則值爲 1,否則爲未定義。
POSIX2_BC_BASE_MAX 允許的最大值,用於 obase 變量並使用 bc 命令。
POSIX2_BC_DIM_MAX bc 命令允許數組中的最大元素數。
POSIX2_BC_SCALE_MAX 允許的最大值,用於 scale 變量,執行 bc 命令。
POSIX2_BC_STRING_MAX 可被 bc 命令接受的字符串常量的最大長度。
POSIX2_CHAR_TERM 系統支持至少一個終端類型則值爲 1;否則值爲 -1。
POSIX2_COLL_WEIGHTS_MAX 配給一個條目的最大權重數目,條目在一個語言環境定義文件中的 LC_COLLATE 語言環境變量中。
POSIX2_C_BIND 如果系統支持 POSIX 2 中的 C 語言綁定選項,則值爲 1;否則,值爲-1。
POSIX2_C_DEV 如果系統支持 POSIX 2 中的 C 語言開發實用程序則值爲 1;否則,值爲 -1。
POSIX2_C_VERSION 操作系統所遵守的 POSIX 2 標準(C 語言綁定)的版本。
POSIX2_EXPR_NEST_MAX 圓括號內可嵌套的最大表達式數,用於 expr 命令。
POSIX2_FORT_DEV 如果系統支持 POSIX 2 中的 FORTRAN 開發實用程序選項則值爲 1;否則,值爲 -1。
POSIX2_FORT_RUN 如果系統支持 POSIX 2 中的 FORTRAN 運行時實用程序選項則值爲 1;否則,值爲 -1。
POSIX2_LINE_MAX 當命令被描述成處理文本文件時,一個命令輸入行(標準輸入或其他文件)的最大字節長度。長度包含換行字符空間。
POSIX2_LOCALEDEF 如果系統支持由 localedef 命令創建語言環境,則值爲 1;否則值未定義。
POSIX2_RE_DUP_MAX 當使用間隔計數參數時正則表達式所允許重複出現的最大值,例如帶 m 和 n 參數使用 ed 命令。
POSIX2_SW_DEV 系統支持軟件開發實用程序選項則值爲 1;否則,值爲 -1。
POSIX2_UPE 如果系統支持 POSIX 2 中用戶可移植實用程序選項,則值爲 1;否則,值爲 -1。
POSIX2_VERSION 系統支持的 POSIX 2 標準的最新版本的批准日期。這個日期是一個六位數字,前四位數字表示年份後兩位數字表示月份。POSIX 2 標準的不同版本由 IEEE 標準委員會定期批准,批准日期用於區分不同版本。

系統路徑配置變量

PathConfiguration 參數指定了系統路徑配置變量,該變量值包含在系統中的路徑和路徑結構信息。下列的列表定義了這些變量:

_POSIX_CHOWN_RESTRICTED chown() 子例程以適當的特權限制在進程,並且將文件的組標識只更改爲進程的有效組標識或輔助組標識之一。如果 PathName 參數引用目錄,其返回值應用於除在目錄中已存在的或可被創建的目錄外的所有文件。
_POSIX_NO_TRUNC 路徑名長於變量 NAME_MAX 指定的限定值就會產生錯誤。如果 PathName 參數引用目錄,其返回值應用於目錄中的文件名。
_POSIX_VDISABLE 終端特殊字符,定義在 termios.h 文件中,可使用這一字符值禁用。
LINK_MAX 鏈接一個文件的最大鏈接數。如果 PathName 參數引用目錄,則返回值應用於該目錄。
MAX_CANON 在終端規範輸入行中的最大字節數。
MAX_INPUT 在終端輸入隊列有可用空間的最大字節數。
NAME_MAX 文件名中的最大字節數(不包含終止空字符)。如果 PathName 參數引用目錄,返回值應用於目錄內的文件名。
PATH_MAX 路徑名中的最大字節數,包含終止空字符。如果 PathName 參數引用目錄,返回值爲當指定目錄是工作目錄時的相對路徑名的最大長度。
PIPE_BUF 當寫入管道時保證成爲原子的最大字節數。如果這個 PathName 參數指向先進先出或是管道,其返回值應用於引用對象。如果 PathName 參數引用目錄,返回值應用於任何已存在的或可在目錄內創建的先進先出。
DISK_PARTITION 磁盤的物理分區大小。
注:
對於 DISK_PARTITION 路徑配置變量,這個 PathName 參數必須指定爲之查詢信息的磁盤的完整路徑。
DISK_SIZE 磁盤大小以兆字節爲單位。
注:
對於 DISK_SIZE 路徑配置變量,這個 PathName 參數必須指定爲之查詢信息的磁盤的完整路徑。

設備變量

DeviceVariable 參數顯示了這個 DeviceName 參數是一個設備路徑,例如 /dev/hdisk0。給定一個磁盤的路徑,則這個 getconf 命令顯示這個磁盤的設備名或位置。

DISK_DEVNAME 設備名或設備位置。

退出狀態

此命令返回下列出口值:

0 這個指定變量是有效的並且其當前狀態的信息已被成功寫入。
>0 發生錯誤。
  1. 顯示變量 ARG_MAX 的值,請輸入:

    getconf ARG_MAX
  2. 顯示所有系統配值變量值,輸入:
     getconf -a
  3. 顯示變量 NAME_MAX 的值,用於 /usr 目錄,請輸入:

     
    getconf NAME_MAX /usr
  4. 下列 shell 命令顯示怎樣處理未指定結果:

    if value=$(getconf PATH_MAX /usr)
         then     if [ "$value" = "undefined" ]
         then
                    echo 
                         The value of PATH_MAX in /usr is undefined.
         else
    
                         The value of PATH_MAX in /usr is $value.
         fi
    else
                    echo 
                         Error in the getconf command.
    fi

示例

  1. 顯示變量 ARG_MAX 的值,請輸入:

    getconf ARG_MAX
  2. 顯示變量 NAME_MAX 的值,用於 /usr 目錄,請輸入:

    getconf NAME_MAX /usr
  3. 下列 shell 命令顯示怎樣處理未指定結果:

    if value=$(getconf PATH_MAX /usr)
    then     if [ "$value" = "undefined" ]
         then
                 echo 
                       The value of PATH_MAX in /usr is undefined.
         else
                 echo 
                       The value of PATH_MAX in /usr is $value.
         fi
    else
         echo Error in the getconf command.
    fi
  4. 如果命令:

    getconf _XBS5_ILP32_OFF32 

    沒有寫入 -1\n 或 undefined\n 到標準輸出,那麼表單命令:

    getconf -v XBS5_ILP32_OFF32 ... 

    將確定相應於 XBS5_ILP32_OFF32 編譯環境的配置變量值。編譯環境指定於 c89,擴展描述。

  5. 如果命令:

    getconf _XBS5_ILP32_OFFBIG 

    沒有寫入 -1\n 或 undefined\n 到標準輸出,那麼表單命令:

    getconf -v XBS5_ILP32_OFFBIG ... 

    將確定相應於 XBS5_ILP32_OFFBIG 編譯環境的配置變量值,編譯環境值指定於 c89,擴展描述。

  6. 如果命令:

    getconf _XBS5_LP64_OFF64 

    沒有寫入 -1\n 或 undefined\n 到標準輸出,那麼表單命令:

    getconf -v XBS5_LP64_OFF64 ... 

    將確定相應於 XBS5_LP64_OFF64 編譯環境的配置變量值,編譯環境值指定於 c89,擴展描述。

  7. 如果命令:

    getconf _XBS5_LPBIG_OFFBIG 

    沒有寫入 -1\n 或 undefined\n 到標準輸出,那麼如下形式的命令:

    getconf -v _XBS5_LPBIG_OFFBIG 

    將確定相應於在 c89,擴展描述中指定的 XBS5_LPBIG_OFFBIG 編譯環境的配值變量值。

  8. 確定磁盤 hdisk0 大小,若是 root 用戶,則輸入下列:
    getconf DISK_SIZE /dev/hdisk0
  9. 確定實際內存大小,輸入下列:
    getconf REAL_MEMORY
  10. 確定是否機器硬件是 32 位或 64 位,則輸入下列:
    getconf HARDWARE_BITMODE
  11. 確定是否內核是 32 位或 64 位,則輸入下列:
    getconf KERNEL_BITMODE
  12. 確定磁盤 hdisk0 的設備名或位置,則輸入下列:
    getconf DEVICE_NAME /dev/hdisk0

文件

/usr/bin/getconf 包含一個 getconf 命令。
/usr/include/limits.h 定義系統配置變量。
/usr/include/unistd.h 定義系統配置變量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章