/****************************************************************************** ** ** mycopy3_clp.c ** ** Fri Jan 18 21:49:45 2008 ** Linux 2.6.23 (#7 Sun Dec 30 16:20:21 CET 2007) i686 ** linux@mgpc (Michael Geng) ** ** C file for command line parser ** ** Automatically created by genparse v0.7.6 ** ** See http://genparse.sourceforge.net for details and updates ** ******************************************************************************/ #include #include #include #include "mycopy3_clp.h" static struct option const long_options[] = { {"iterations", required_argument, NULL, 'i'}, {"outfile", required_argument, NULL, 'o'}, {"help", no_argument, NULL, 'h'}, {"version", no_argument, NULL, 'v'}, {NULL, 0, NULL, 0} }; /*---------------------------------------------------------------------------- ** ** Cmdline () ** ** Parse the argv array of command line parameters ** **--------------------------------------------------------------------------*/ void Cmdline (struct arg_t *my_args, int argc, char *argv[]) { extern char *optarg; extern int optind; int c; int errflg = 0; my_args->i = 1; my_args->o = NULL; my_args->h = false; my_args->v = false; optind = 0; while ((c = getopt_long (argc, argv, "i:o:hv", long_options, &optind)) != EOF) { switch (c) { case 'i': my_args->i = atoi (optarg); if (my_args->i < 0) { fprintf (stderr, "parameter range error: i must be >= 0\n"); errflg++; } break; case 'o': my_args->o = optarg; break; case 'h': my_args->h = true; usage (EXIT_SUCCESS, argv[0]); break; case 'v': my_args->v = true; break; default: usage (EXIT_FAILURE, argv[0]); } } /* while */ if (errflg) usage (EXIT_FAILURE, argv[0]); if (optind >= argc) my_args->optind = 0; else my_args->optind = optind; } /*---------------------------------------------------------------------------- ** ** usage () ** ** Print out usage information, then exit ** **--------------------------------------------------------------------------*/ void usage (int status, char *program_name) { if (status != EXIT_SUCCESS) fprintf (stderr, "Try `%s --help' for more information.\n", program_name); else { printf ("\ usage: %s [ -iohv ] file\n\ Print a file for a number of times to stdout.\n\ [ -i ] [ --iterations ] (type=INTEGER, range=0..., default=1)\n\ Number of times to output .\n\ File should be text format!\n\ [ -o ] [ --outfile ] (type=STRING)\n\ Output file name.\n\ [ -h ] [ --help ] (type=FLAG)\n\ Display this help and exit.\n\ [ -v ] [ --version ] (type=FLAG)\n\ Output version information and exit.\n", program_name); } exit (status); }