次のコマンドを解析するには、getopt を使用する必要があります。
./center -n name –cp Anumber –i Anumber –t Anumber –s Anumber -fc nameOfaFile
それらはすべて任意の順序で発行できます。
したがって、getOpt を使用する必要があることは明らかです。
だから私は調査してきました、これは私がこれまでに持っているものです
void check_parameters (int argc, char** argv) {
int opt;
while((opt = getopt(argc, argv, "n:cp:i:c:fc:")) != -1) {
printf("give me opt %c \n", opt)
swicth(opt){
case 'n' :
//do something
case 'cp' :
//do something
case 'i' :
//do something
}
}
}
私は事実を知っています 3 パラメータ: OptString は、getOpt に期待するオプションの文字を伝える場所です また、optarg では、引数がどこにあるかを示します
動いていない!printf( "give me opt %c", opt ) すると、文字ではなく数字が表示されます。
このため、機能しません。パラメータを正しくチェックしません
編集: man 3 getopt を実行した後の getopt の戻り値は次のとおりです。オプションが正常に見つかった場合、 getopt() はオプション文字を返します。すべてのコマンド行オプションが解析された場合、getopt() は -1 を返します。
オプション文字を返しますか?常に整数 1 を返します。getopt の仕組みがわかりません。スイッチはキャラクターと比べてどうですか?