I have been developing and using libparamset that is a command-line parameter parsing library written in plain C. It provides:
- Cross-platform functionality (Linux, OS X, Windows).
- Configurable parser where each parameter can act differently (powerful and flexible feature).
- Auto-generated messages for typos, unknown parameters or invalid parameters.
- Extra functionality to design command-line user interface.
- Good documentation.