I saw this source code in a book:
#include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { char *delivery = ""; int thick = 0; int count = 0; char ch; while ((ch = getopt(argc, argv, "d: t")) != EOF) switch(ch) { case 'd': delivery = optarg; break; case 't': thick = 1; break; default: fprintf(stderr, "Unknown option: '%s'\n", optarg); return 1; } argc -= optind; argv += optind; if (thick) puts("Thick Crust."); if (delivery[0]) printf("To be deliverd %s\n", delivery); puts("Ingredients: "); for (count = 0; count < argc; count++) puts(argv[count]); return 0; }
I can understand the whole source except:
argc -= optind; argv += optind;
I know what argc and argv are, but what happens on these two lines, what is optind, Explain to me.
Thanks.
source share