argv
変数を反復処理することでコマンドラインを表示するCプログラムがあります。
#include <stdio.h>
int main(int argc, char *argv[]){
int i = 0;
printf("----------\n");
for(i = 0; i < argc; i++)
printf("%s\n", argv[i]);
return 0;
}
次のような大きなC++ソースツリーを含むフォルダーでプログラムを呼び出しました。
./a.out **/*.h
出力:
zsh: argument list too long: ./a.out
ただし、同じフォルダー内のglobを使用して呼び出された場合、プログラムは問題なく動作しls
ます。プログラムを呼び出すときに失敗するのはなぜですか?ワイルドカードを拡張するにはどうすればよいですか?grep
**/*.h
zsh
zsh
編集:私はcygwinでzshを使用しています。