コマンドライン引数

何となくコマンドライン引数を使って動作を決めるプログラムを書いてみた。
-p=[数字]という形のコマンドライン引数をどうやってやろうかと考えた結果

    int i;
    unsigned int num;
    char cap_f=0,first_f=0,play_f=0;
    char *sp;



    for(i=1;i<argc;i++){
        if(strcmp("-f",argv[i])==0) first_f = 1;
        PRINTF("first_f = %d\n",first_f);
        if(strcmp("-c",argv[i])==0) cap_f = 1;
        PRINTF("cap_f = %d\n",cap_f);
        sp = strstr(argv[i],"-p=");
        PRINTF("sp = %s\n",sp);
        if(sp != 0){
            sp += 3;
            num = atoi(sp);
            play_f = 1;
            PRINTF("play_f = %d,num = %d\n",play_f,num);
        }
    }

こんな感じでできた。
実行するとこんな感じ

A500:/home/user/prog/test$ ./debug/test -f -p=1da0
first_f = 1
cap_f = 0
sp = (null)
first_f = 1
cap_f = 0
sp = -p=1da0
play_f = 1,num = 1
A500:/home/user/prog/test$ ./debug/test -f -p=100
first_f = 1
cap_f = 0
sp = (null)
first_f = 1
cap_f = 0
sp = -p=100
play_f = 1,num = 100

バグはa-p=100とかでも実行できること。