次のコードがありますが、コマンド ラインから実行するときに -arguments の後にファイルの場所にオプションの引数を追加する方法がわかりません。私はたくさんの読書をしてきましたが、混乱しているだけです。これが現在のコードです。
int c;
while ((c = getopt(argc, argv, "vdras")) != EOF) {
switch (c) {
case 'v': v = true;
break;
case 'd': d = true;
break;
case 'r' : r = true;
break;
case 'a' : a = true;
break;
case 's' : s = true;
break;
}
}
argc -= optind;
argv += optind;
今できることは、これらすべてのコマンド (またはそれらのコマンドのサブセット) の最後にファイルを追加することです。
そのため、プログラムの有効な引数として -rda filehere または -a filehere または単に filehere と入力できます。
私はこのリンクを読んでいて、すべてのコマンドラインオプションの間に二重のセミコロンを置くと信じています。したがって、次のようになります。
while ((c = getopt(argc, argv, "::v::d::r::a::s::")) != EOF) {
条件の後にオプションの引数を指定できますが、それらをキャプチャする方法がわかりません。のように、ランダムなファイル名を入力してテストコードを出力するケースを作成しようとしてきたので、それが機能していることはわかっていますが、うまくいかないようです。*optarg を何らかの方法でスイッチに組み込む必要があるかどうか疑問に思っています。これにより、オプションに続く引数を取得できるようになりますが、これを行う方法がよくわかりません。どんな説明でも素晴らしいでしょう。