コマンドラインのオプション解析について

C言語の基本確認問題:中級

UNIX のコマンドを実行する際に、"-o" や "-P" など、コマンドの後に引き数をつけて実行することが多いと思います。 自分で作成するプログラムにもこれと同じ機能を持たせることで、実行時にそのプログラムの実行環境を変化させることができます。

簡単な例ですと、
#include < stdio.h >
#include < stdlib.h >

int main(int argc, char *argv[]){
   int i=1;
   while(arg > i){
      printf("%d ", atoi(argv(i)));
   }
   return 0;
}
をコンパイルした実行ファイル a.out を
%a.out 9 20 
として実行すれば、main への引き数として、argc, argv[] が
 argc = 3
 argv[0] = "a.out"
 argv[1] = "9"
 argv[2] = "20"
としてわたります。ので実行結果は、
 9 20 
となります。 また、 argv[]の中身をさらに解析することで、いろいろな挙動を実現できます。 オプション解析用の関数として、GNU による getopt などが有名です。 自分でgoogle 等で検索をかけてください。いろいろな解説が見つかると思います。
  1. getoptによるオプション解析
  2. Manpage of GETOPT