我试图理解一个类的一段骨架代码。预期用途是:
./a.out -d -n Foo -i Bar
骨架代码工作正常,但我从未使用过getopt()
也无法理解为什么它可以正常工作(理解它与分配无关,我只是想理解它)。它如何更新/退出while循环?我根本没有看到指针增量或循环中传递给它的参数发生变化。
char *optString = "-d-n:-i:";
int opt = getopt(argc, argv, optString);
while (opt != -1) {
switch(opt) {
case 'd':
debug = 1;
break;
case 'n':
nameserver_flag = 1;
nameserver = optarg;
break;
case 'i':
hostname = optarg;
break;
case '?':
usage();
exit(1);
default:
usage();
exit(1);
}
opt = getopt(argc, argv, optString);
}