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.

WWW: https://www.gnu.org/software/gengetopt/
