!!!C getopt getopt を利用することで、option指定方法のguidelineを簡単に実現できる。 独自の値をとるoption、取らないoptionの両方をsupportする。 #include int getopt(int argc, char *const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; *optstringは、programで指定するoptionと、各optionが独自の値をとるかどうかを指定する。 *文字の後に : がついている場合、そのoptionが、引数をとる *戻り値は、配列argvの中で見つかった、次のoption文字。 *optionが値をとる場合、外部変数 optargに値がセットされる #include #include extern char *optarg;extern int optind, opterr, optopt; int main(int argc, char *argv[]) { int i = 1; char c; char os[3] = {'\0',':','\0'}; for( c = 'a'; c <= 'z'; c++) { os[0] = c; int opt = getopt(argc, argv, (const char*)&os); if (opt > -1) { printf("[%d]%c : %s\n", (i++), opt, optarg); } } } # ./get_opt -a optionA -b optionB -c optionC [1]a : optionA [2]b : optionB [3]c : optionC ---- この本からの覚書。 {{amazon 4797327014}}