getoptは、コマンドライン引数を解析するのに役立ちます。
のgetopt: - getoptのmanページで
、
構文:
int getopt(int argc, char * const argv[], const char *optstring);
のgetopt()関数は、コマンドライン引数を解析します。引数argcとargvは、プログラムの呼び出し時にmain()関数に渡される引数の数と配列です。 ' - 'で始まり(正確に " - "または " - "ではない)argvの要素は、オプション要素です。この要素の文字(最初の ' - '以外)はオプション文字です。 getopt()が繰り返し呼び出された場合、各オプション要素の各オプション文字が順番に返されます。
例: -
#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);
}
のgetopt関数の詳細を読むためにgetopt(3) manページへのリンクをお試しください。
[getopt](http://linux.die.net/man/3/getopt) –
はい。それを達成する良い方法があります。 –