https://github.com/cofyc/argparse
Command-line arguments parsing library.
https://github.com/cofyc/argparse
argparse argument-parsing c cli
Last synced: 7 months ago
JSON representation
Command-line arguments parsing library.
- Host: GitHub
- URL: https://github.com/cofyc/argparse
- Owner: cofyc
- License: mit
- Created: 2012-03-10T11:05:34.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2024-07-15T02:10:57.000Z (over 1 year ago)
- Last Synced: 2025-05-16T15:03:31.517Z (7 months ago)
- Topics: argparse, argument-parsing, c, cli
- Language: C
- Homepage:
- Size: 123 KB
- Stars: 729
- Watchers: 25
- Forks: 127
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-c-zh - argparse - 命令行参数解析库,灵感来自Python的argparse模块。[](https://spdx.org/licenses/MIT.html) (公用事业 / YAML)
- awesome-c - argparse - Command-line argument parsing library, inspired by Python's argparse module. [MIT](https://spdx.org/licenses/MIT.html) (Utilities / YAML)
README
# argparse
[](https://github.com/cofyc/argparse/actions/workflows/ci.yaml)
argparse - A command line arguments parsing library in C (compatible with C++).
## Description
This module is inspired by parse-options.c (git) and python's argparse
module.
Arguments parsing is common task in cli program, but traditional `getopt`
libraries are not easy to use. This library provides high-level arguments
parsing solutions.
The program defines what arguments it requires, and `argparse` will figure
out how to parse those out of `argc` and `argv`, it also automatically
generates help and usage messages and issues errors when users give the
program invalid arguments.
## Features
- handles both optional and positional arguments
- produces highly informative usage messages
- issues errors when given invalid arguments
There are basically three types of options:
- boolean options
- options with mandatory argument
- options with optional argument
There are basically two forms of options:
- short option consist of one dash (`-`) and one alphanumeric character.
- long option begin with two dashes (`--`) and some alphanumeric characters.
Short options may be bundled, e.g. `-a -b` can be specified as `-ab`.
Options are case-sensitive.
Options and non-option arguments can clearly be separated using the `--` option.
## Examples
- [basic](tests/basic.c)
- [subcommands](tests/subcommands.c)