Skip to content
Snippets Groups Projects
getopt.c 29.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • Niels Möller's avatar
    Niels Möller committed
    
    int
    main (argc, argv)
         int argc;
         char **argv;
    {
      int c;
      int digit_optind = 0;
    
      while (1)
        {
          int this_option_optind = optind ? optind : 1;
    
          c = getopt (argc, argv, "abc:d:0123456789");
          if (c == -1)
    	break;
    
          switch (c)
    	{
    	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 '?':
    	  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);
    }
    
    #endif /* TEST */