トップ 一覧 ping 検索 ヘルプ RSS ログイン

C getoptの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!C getopt

getopt を利用することで、option指定方法のguidelineを簡単に実現できる。
独自の値をとるoption、取らないoptionの両方をsupportする。
 #include <unistd.h>
 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 <unistd.h>
 #include <stdio.h>
 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);
     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}}