我看到一本書,這個源代碼:這些代碼是做什麼的?
#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;
}
我能明白,只是整個源:
argc -= optind;
argv += optind;
我知道什麼是argc和argv,但發生什麼事他們在這兩條線,什麼是「optind」 請解釋一下。
謝謝。
您正在使用哪種手冊? – weston 2012-08-16 12:28:32
getopt。 http://linux.die.net/man/3/getopt'man 3 getopt'。 – 2012-08-16 12:31:43
或者,如果您安裝了正確的手冊頁,「man optind」會爲您提供相同的信息。 – 2012-08-16 12:32:39