| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | /* Getopt tests */#include <stdio.h>#include <string.h>#include <stdlib.h>#include <getopt.h>int main (int argc, char **argv){  int c;  int digit_optind = 0;  while (1)    {      int this_option_optind = optind ? optind : 1;      int option_index = 0;      static struct option long_options[] =      {	{"add", 1, 0, 0},	{"append", 0, 0, 0},	{"delete", 1, 0, 0},	{"verbose", 0, 0, 0},	{"create", 0, 0, 0},	{"file", 1, 0, 0},	{0, 0, 0, 0}      };      c = getopt_long (argc, argv, "abc:d:0123456789",		       long_options, &option_index);      if (c == EOF)	break;      switch (c)	{	case 0:	  printf ("option %s", long_options[option_index].name);	  if (optarg)	    printf (" with arg %s", optarg);	  printf ("\n");	  break;	case '0':	case '1':	case '2':	case '3':	case '4':	case '5':	case '6':	case '7':	case '8':	case '9':	  if (digit_optind != 0 && digit_optind != this_option_optind)	    printf ("digits occur in two different argv-elements.\n");	  digit_optind = this_option_optind;	  printf ("option %c\n", c);	  break;	case 'a':	  printf ("option a\n");	  break;	case 'b':	  printf ("option b\n");	  break;	case 'c':	  printf ("option c with value `%s'\n", optarg);	  break;	case 'd':	  printf ("option d with value `%s'\n", optarg);	  break;	case '?':	  break;	default:	  printf ("?? getopt returned character code 0%o ??\n", c);	}    }  if (optind < argc)    {      printf ("non-option ARGV-elements: ");      while (optind < argc)	printf ("%s ", argv[optind++]);      printf ("\n");    }  exit (0);}
 |