Skip to content

Instantly share code, notes, and snippets.

@dd1994
Created October 2, 2015 06:31
Show Gist options
  • Save dd1994/e05d897cbef8e4add4ba to your computer and use it in GitHub Desktop.
Save dd1994/e05d897cbef8e4add4ba to your computer and use it in GitHub Desktop.
Example of Getopt
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <ctype.h>
int main(int argc, const char *argv[]) {
bool aflag = false;
bool bflag = false;
char *cvalue = NULL;
int c;
opterr = 0;
while ((c = getopt(argc, argv, "abc:")) != -1) {
switch (c) {
case 'a':
aflag = true;
break;
case 'b':
bflag = true;
break;
case 'c':
cvalue = optarg;
break;
case '?':
if (optopt == 'c') {
fprintf(stderr, "Option -%c requires an argument.\n", optopt);
} else if (isprint(optopt)) {
fprintf(stderr, "Unknown option -%c.\n", optopt);
} else {
fprintf(stderr, "Unknown option character '\\x%x'\n", optopt);
}
return 1;
default:
abort();
}
}
printf("aflag = %d,bflag = %d,cvalue = %s\n",
aflag, bflag, cvalue);
for (size_t index = optind; index < argc; index++) {
printf("Non option arguments %s\n", argv[index]);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment