プログラムがPOSIXのコマンドライン引数の間のスペース数を取得できますか?

プログラムがPOSIXのコマンドライン引数の間のスペース数を取得できますか?

次の行でプログラムを書くとしましょう。

int main(int argc, char** argv)

.txtの内容を調べて、どのコマンドライン引数が渡されたかを確認できますargv

プログラムが引数の間に空白がいくつあるかを検出できますか? bashに次のように入力したときと同じです。

ibug@linux:~ $ ./myprog aaa bbb
ibug@linux:~ $ ./myprog       aaa      bbb

環境は最新のLinux(例:Ubuntu 16.04)ですが、答えはすべてのPOSIX互換システムに適用する必要があると思います。

ベストアンサー1

一般的に言えばそうではありません。コマンドラインの解析はシェルによって実行され、呼び出されたプログラムで解析されていない行を使用できるようにはしません。実際には、文字列を解析するのではなく、プログラムで引数配列を構築してargvを生成する他のプログラムでプログラムを実行できます。

おすすめ記事