Finally getting around to playing with getopt in C

cat-town
Dan Buch 13 years ago
parent 13257b1ecc
commit 2fa6c49132

@ -1,2 +1,3 @@
/temperatures /temperatures
/qsort-example /qsort-example
/getopt-example

@ -3,6 +3,6 @@ CFLAGS += -g -Wall -Wextra -pedantic -pedantic-errors
%.class:%.java %.class:%.java
javac -d $(PWD) $^ javac -d $(PWD) $^
all: temperatures qsort-example URLParts.class all: temperatures qsort-example getopt-example URLParts.class
.PHONY: all .PHONY: all

@ -0,0 +1,45 @@
/*
* Example getopt usage mostly from getopt(3)
*/
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
int flags, opt;
int nsecs, tfnd;
nsecs = 0;
tfnd = 0;
flags = 0;
while ((opt = getopt(argc, argv, "nt:")) != -1) {
switch (opt) {
case 'n':
flags = 1;
break;
case 't':
nsecs = atoi(optarg);
tfnd = 1;
break;
default: /* '?' */
fprintf(stderr, "Usage: %s [-t nsecs] [-n] name\n",
argv[0]);
exit(EXIT_FAILURE);
}
}
printf("flags=%d; tfnd=%d; optind=%d\n", flags, tfnd, optind);
if (optind >= argc) {
fprintf(stderr, "Expected argument after options\n");
exit(EXIT_FAILURE);
}
printf("name argument = %s\n", argv[optind]);
/* Other code omitted */
exit(EXIT_SUCCESS);
}
Loading…
Cancel
Save