GNU Gengetopt 2.23

This program generates a C function that uses getopt_long function to parse the command line options, to validate them and fills a struct. Thus your program can now handle options such as:

myprog --input foo.c -o foo.o --no-tabs -i 100 *.class

And both long options (those that start with –) and short options (start with - and consist of only one character) can be handled. For standards about short and long options you may want to take a look at the GNU Coding Standards.

Gengetopt can also generate a function to save the command line options into a file, and a function to read the command line options from a file. Of course, these two kinds of files are compliant.

Generated code is commented with Doxygen comments.

Gengetopt is free software. Please see the file LICENSE and COPYING for details. Use of gengetopt does not impose any particular license on the generated code, the generated code is considered to be in public domain.

Gengetopt has originally been written by Roberto Arturo Tena Sanchez and currently maintained by Tomas Volf.

Gengetopt is a GNU program and its main home page is at GNU site

1 Documentation

For complete documentation, please see gengetopt.html.

2 Download

You can download it from GNU’s ftp site or from one of its mirrors. You can also use https protocol to benefit from encryption: Binaries are not distributed, please either use your distribution’s version or compile your own.

2.1 Anonymous Git Checkout

This project’s git repository can be checked out through the following clone instruction:

git clone git://

Further instructions can be found at the address and the git repository can also browsed on-line at

Please note that this way you will get the latest development sources of Gengetopt, which may also be unstable. This solution is the best if you intend to correct/extend this program. You should send me patches against the latest git repository sources.

If, on the contrary, you want to get the sources of a given release through git, say, e.g., version X.Y.Z, you must check out the tag rel_X_Y_Z.

When you compile the sources that you get from the git repository, before running the configure and make commands, for the first time, you must run the command:

autoreconf -i

This will run the autotools commands in the correct order, and also copy possibly missing files. You need to have installed recent versions of automake, autoconf and libtool in order for this to succeed.

2.2 CVS

Since version 2.22.4 of Gengetopt the CVS repository was dismissed in favor of Git. The CVS repository is no longer updated or used.

3 Bugs

If you find a bug in gengetopt, please use the Savannah web interface to report it.

4 Changes in this release

See NEWS for a summary of new features and user visible changes in this release. See ChangeLog for complete list of changes.

5 Other

Please send FSF & GNU inquiries & questions to There are also other ways to contact the FSF.

Please send comments on these web pages to, send other questions to

6 Copyright

Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.