(distribute): Add globtest.c and globtest.sh.
[kopensolaris-gnu/glibc.git] / posix / tstgetopt.c
1 #include <unistd.h>
2 #include <stdio.h>
3 #include <getopt.h>
4
5 int
6 main (int argc, char **argv)
7 {
8   static const struct option options[] =
9     {
10       {"required", required_argument, NULL, 'r'},
11       {"optional", optional_argument, NULL, 'o'},
12       {"none",     no_argument,       NULL, 'n'}
13     };
14    
15   int aflag = 0;
16   int bflag = 0;
17   char *cvalue = NULL;
18   int index;
19   int c;
20
21   while ((c = getopt_long (argc, argv, "abc:", options, NULL)) >= 0)
22     switch (c)
23       {
24       case 'a':
25         aflag = 1;
26         break;
27       case 'b':
28         bflag = 1;
29         break;
30       case 'c':
31         cvalue = optarg;
32         break;
33       case '?':
34         fputs ("Unknown option.\n", stderr);
35         return 1;
36       default:
37         fprintf (stderr, "This should never happen!\n");
38         return 1;
39
40       case 'r':
41         printf ("--required %s\n", optarg);
42         break;
43       case 'o':
44         printf ("--optional %s\n", optarg);
45         break;
46       case 'n':
47         puts ("--none");
48         break;
49       }
50
51   printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);
52
53   for (index = optind; index < argc; index++)
54     printf ("Non-option argument %s\n", argv[index]);
55
56   return 0;
57 }