1 /* $OpenBSD: getopt.c,v 1.10 2015/10/09 01:37:07 deraadt Exp $ */ 2 3 /* 4 * This material, written by Henry Spencer, was released by him 5 * into the public domain and is thus not subject to any copyright. 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> 10 #include <unistd.h> 11 #include <err.h> 12 13 int 14 main(int argc, char *argv[]) 15 { 16 extern int optind; 17 extern char *optarg; 18 int c; 19 int status = 0; 20 21 if (pledge("stdio", NULL) == -1) 22 err(1, "pledge"); 23 24 optind = 2; /* Past the program name and the option letters. */ 25 while ((c = getopt(argc, argv, argv[1])) != -1) 26 switch (c) { 27 case '?': 28 status = 1; /* getopt routine gave message */ 29 break; 30 default: 31 if (optarg != NULL) 32 printf(" -%c %s", c, optarg); 33 else 34 printf(" -%c", c); 35 break; 36 } 37 printf(" --"); 38 for (; optind < argc; optind++) 39 printf(" %s", argv[optind]); 40 printf("\n"); 41 exit(status); 42 } 43