跳轉到內容

C 程式設計/GNU C 庫參考/argp.h

來自 Wikibooks,開放世界中的開放書籍

下一節:子選項的解析,上一節:使用getopt解析程式選項,上一級:解析程式引數   [目錄][索引]


使用 Argp 解析程式選項

[編輯 | 編輯原始碼]

Argp 是一個用於解析 Unix 風格引數向量的介面。參見程式引數。

Argp 提供了在更常用的getopt介面中無法使用的功能。這些功能包括根據“--help”和“--version”選項自動生成輸出,如 GNU 編碼標準中所述。使用 argp 可以降低程式設計師忽略實現這些額外選項或使其保持更新的可能性。

Argp 還提供了將多個獨立定義的選項解析器合併為一個的功能,協調它們之間的衝突,並使結果看起來無縫。庫可以匯出 argp 選項解析器,使用者程式可以將其與自己的選項解析器結合使用,從而減少使用者程式的工作量。某些程式可能僅使用庫匯出的引數解析器,從而為庫實現的抽象實現一致且高效的選項解析。

要使用 argp,應包含標頭檔案<argp.h>

  • argp_parse 函式
  • Argp 全域性變數
  • 指定 Argp 解析器
  • 在 Argp 解析器中指定選項
  • Argp 解析器函式
  • 組合多個 Argp 解析器
  • argp_parse 的標誌
  • 自定義 Argp 幫助輸出
  • argp_help 函式
  • argp_help 函式的標誌
  • Argp 示例
  • Argp 使用者自定義
  • 子選項解析示例

25.3.1 argp_parse 函式

[編輯 | 編輯原始碼]

argp_parse 函式是 argp 的主要介面。在許多情況下,呼叫argp_parsemain函式中唯一需要的引數解析程式碼。參見程式引數。

函式:error_t argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags, int *arg_index, void *input)
初步:| MT-不安全競態:argpbuf 本地環境 | AS-不安全堆 i18n 鎖損壞 | AC-不安全記憶體鎖損壞 | 請參閱 POSIX 安全概念。argp_parse 函式使用 argp 解析器argp解析argv中的引數,長度為argc。參見指定 Argp 解析器。為argp傳遞空指標等同於使用包含全零的struct argpflags是一組修改解析行為的標誌位。參見argp_parse的標誌。input傳遞給 argp 解析器argp,其含義由argp定義。典型用法是傳遞指向結構的指標,該結構用於指定解析器的引數並傳遞迴結果。除非flags中包含ARGP_NO_EXITARGP_NO_HELP標誌,否則呼叫argp_parse可能會導致程式退出。如果檢測到錯誤或遇到未知選項,則此行為為真。參見程式終止。如果arg_index非空,則第一個未解析選項在argv中的索引將作為值返回。如果解析成功,則返回值為零;如果檢測到錯誤,則返回值為錯誤程式碼(參見錯誤程式碼)。不同的 argp 解析器可能會返回任意錯誤程式碼,但標準錯誤程式碼為:如果發生記憶體分配錯誤,則為ENOMEM;如果遇到未知選項或選項引數,則為EINVAL

下一節:子選項的解析,上一節:使用getopt解析程式選項,上一級:解析程式引數   [目錄][索引]

華夏公益教科書