問題タブ [getopt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
846 参照

c - gdb で getopt を使用する

getopt私の機能に組み込まれたばかりmain()です

getoptoptarg各呼び出しのグローバル変数を設定します

を使用してステップスルーmain()するとgdbgetopt()呼び出しoptargは常にNULL(例: (gdb) p optarg) でありprintf("%s\n", optarg)、期待どおりに cmd 行の引数が出力されます

どうしたの?なぜ2つは同じではないのですか?

これは gdb の問題であり、gdb がどのようにグローバルを検査しようとしているのか、それとも何か他のことが起こっているのでしょうか?

0 投票する
4 に答える
13022 参照

bash - cmdがない場合のgetopts印刷ヘルプ。行引数が一致しました

bashでgetoptsを使用してコマンドライン引数を解析しようとしていますが、一致する引数がない(またはコマンドライン引数が指定されていない)場合、「デフォルト」アクションを実装する方法がわかりませんでした。

これは、私がこれまでに試したことを単純化したものです。

print_helpを呼び出す(簡単な)方法はありますか?出口2; 一致しない入力で?

0 投票する
1 に答える
196 参照

shell - UNIXシェルスクリプトでdu関数を実装できるスクリプトの開発方法

いくつかのコマンドを実行するスクリプトを書きたいときに、UNIX シェル (/bin/sh) に du 関数を実装する方法についていくつか質問があります。

1)実際の du コマンドとの混同を避けるために、その du コマンドに「disku」などの新しい名前を付けるにはどうすればよいですか?

2) "getopt" を使用して、開始ディレクトリの名前を絶対または相対表記で指定するコマンド ライン引数を受け入れたいと考えています。(たとえば、現在の作業ディレクトリが /home で、ディレクトリ /home/foo とそのすべてのサブディレクトリを処理したい場合、コマンド ラインは次のようになります。

では、ディレクトリ内の各ファイルを一覧表示し、そのサイズを 512 バイト単位の数として次の 512 バイト単位に切り上げて報告するスクリプトを作成するにはどうすればよいでしょうか。

SO 組み込みの getopt 関数を使用してコマンドライン引数を解析するにはどうすればよいですか?

では、h オプションと -s オプションをどのように実装できますか?

乾杯

0 投票する
2 に答える
4599 参照

c - Getopt シフト optarg

次のようにプログラムを呼び出す必要があります。

argv[1] から hello を取り出しましたが、値バーに問題があります。また、「r:」を別のものに変更する必要がありますか?

argv を介してこれを実行できることはわかっていますが、bash と同様の方法で getopt を使用して実行する方法はありますか?

ありがとう。

0 投票する
2 に答える
273 参照

haskell - Google GFlags for Haskell のようなオプション ライブラリ

Google の Haskell 用フラグ ライブラリに非常に似たものを用意することに興味があります。

以下は、私が gflags を気に入っている理由を示す、gflags の簡単な紹介です: http://gflags.googlecode.com/svn/trunk/doc/gflags.html

Hackage のさまざまな getopt のようなライブラリを調べましたが、gflags のシンプルさと柔軟性に一致するものは見つかりませんでした。

つまり、次の機能が必要です。

  • --help を生成します (ヘルプに記載されているデフォルト値を使用)。
  • ユーザーが指定したオプションを解析するだけでなく、一致しないオプションでもエラーが発生する必要があるため、ユーザーはタイプミスに気付く機会があります。
  • フラグは任意のモジュールで簡単に宣言できます (できればトップレベルで、必要に応じてテンプレート Haskell ハッカーを受け入れます)。
  • 主に、フラグを宣言したすべてのモジュールを呼び出す必要はありません。代わりに、フラグは起動時/リンク時/いつでも登録されます。
  • gflags のように、main が一般的な初期化関数を呼び出さなければならない場合は問題ありません。 /li>
  • flags は純粋に使用できます (ええ、これは API をより単純にするための unsafePerformIO の適切な使用法だと思います)。

うまくいかなかった後、私はこれを自分でやろうというアイデアを試してみました (もちろん、Hackage で共有しました)。ただし、登録部分の実装についてはまったくわかりません。GCC の ((constructor)) 属性または C++ の静的初期化に似たものが必要ですが、Haskell です。標準の最上位の u​​nsafePerformIO は十分ではありません。これは遅延であるため、メインの実行が開始される前に呼び出されません。

0 投票する
3 に答える
8393 参照

c++ - C++でコマンドライン引数を解析するために使用するライブラリ

私はとについて知っていgetoptsますargp。調べたところ、boostコマンドprogram_optionsラインパラメータを解析するためのライブラリとしてあります。

どちらを使用すればよいか正確にはわかりません。私は知っていgetoptsますがPOSIXargpそうではありませんが、それは私には関係ありません。重要なのは使いやすさです。(長所/短所?)1つをお勧めできますか?私は他の図書館にも門戸を開いています。

0 投票する
4 に答える
5292 参照

c++ - C++では、必要な引数を持つ長いオプションのみを使用する方法は?

C++ プログラムで、必要な引数を指定した "long-only" オプションを使用したいと考えています。以下は、 getopt_long()を使用した最小限の例ですが、機能していません。

次のコマンドでコンパイルします (gcc バージョン 4.1.2 20080704 Red Hat 4.1.2-46):

それは私にこれを教えてくれます:

結果は次のとおりです。

ideoneで動作させようとしましたが、オプションさえ認識しません-v

別の質問のコメントでtrojanfoeが示したように、GNU tarが行うため、「ロングオンリー」オプションを使用できるはずです。しかし、GNU tar はargpを使用しており、そのソース コードを理解するのは困難です。

誰かがGNUgetopt_long()またはargp().

0 投票する
1 に答える
1152 参照

java - Getoptでハイフンを先頭にせずにパラメータを解析する方法

を使用してコマンドライン引数を解析しようとしていGetoptます。
ただし、私の引数の一部は、とが定数であり、とhost myhost server myserverが引数を変更している形式からのものです。hostservermyhostmyserver

そのようなオプションを解析できますか?

0 投票する
9 に答える
88812 参照

c - getopt.h:WindowsでのLinuxCコードのコンパイル

9つの*.cファイル(および9つの関連する* .hファイル)のセットを取得して、Windowsでコンパイルしようとしています。

このコードは元々、標準のGNU-Linux/Cライブラリ「getopt.h」を使用してコマンドライン引数を取るようにLinuxで設計されました。そして、そのライブラリは、WindowsでのCコードの構築には適用されません。

私のコードが今何をしているのかを無視して、次の質問をしたいと思います。このCライブラリ「getopt.h」に精通している方へ:POSIXスタイルのコマンドライン引数に依存している場合、Windowsでコードをビルドして実行することは可能ですか?または、Windowsで機能するようにコードを書き直して、入力ファイルを別の方法で渡す(そして、「getopt.h」依存関係を捨てる)必要がありますか?

0 投票する
3 に答える
1848 参照

c - 関数 getopt C で

必須にしたいパラメータを書かないと状況に問題があります。

書き込み時にメッセージが表示さ./a.out -b testれないfprintf()