+int parse_opts(int argc, char **argv)
+{
+ int index, c;
+ //int opterr=0, optopt=0, optind=0;
+ //char *optarg;
+ // int getopt(int argc, char **argv, const char *options);
+ opterr = 0;
+ const char *options = "c:";
+ while((c = getopt(argc, argv, options)) != -1)
+ switch(c)
+ {
+ case 'c':
+ cascade_filename = string(optarg);
+ printf("option c, argument = %s\n", optarg);
+ case '?':
+ if(optopt == 'c')
+ printf("option -%c requires an argument.\n", optopt);
+ else if(isprint (optopt))
+ printf("unknown option `-%c'.\n", optopt);
+ else
+ printf("unknown option char `\\x%x'.\n", optopt);
+ goto known_args_processed;
+ default:
+ abort();
+ }
+known_args_processed:
+
+ for(index = optind; index < argc; index++)
+ printf("Non-option arg %s\n", argv[index]);
+
+ return 0;
+}
+