多くのコマンド ライン引数を処理する小さなプログラムを C で作成しているので、getopt を使用して並べ替えることにしました。
ただし、オプションではない 2 つの引数 (ソース ファイルと宛先ファイル) を必須にしたいので、フラグやその他の引数がなくても、プログラムを呼び出すときにそれらを引数として指定する必要があります。
これは、フラグを使用して引数を処理するために必要なものの簡略化されたバージョンです。
while ((c = getopt(argc, argv, "i:d:btw:h:s:")) != -1) {
switch (c) {
case 'i': {
i = (int)atol(optarg);
}
case 'd': {
d = (int)atol(optarg);
}
case 'b':
buf = 1;
break;
case 't':
time = 1;
break;
case 'w':
w = (int)atol(optarg);
break;
case 'h':
h = (int)atol(optarg);
break;
case 's':
s = (int)atol(optarg);
break;
default:
break;
}
}
これを編集して、オプションではない引数も処理されるようにするにはどうすればよいですか?
また、オプションの前または後に非オプションを含めることができるようにしたいのですが、それはどのように処理されますか?