Очень простой кусок кода C ++, подобный этому:
int main(int argc, char **argv){
std::cout << "argc: " << argc << std::endl;
}
Составлено с g++ -o hello hello.cpp
./hello u
, вывод argc: 2
;./hello u +
, вывод argc: 3
;./hello u *
, вывод argc: 26
, Зачем 26
?Расширение оболочки. *
расширяется оболочкой во все файлы в текущем каталоге, которых, как представляется, 24, и передает их в качестве отдельных аргументов вашей программе.
Поскольку это похоже на вызов из оболочки UNIX, используйте
./hello u \*
или же
./hello u '*'
Вам нужно передать то, что интерпретирует оболочка как специальные символы в ' '
,
Таким образом, надлежащий вызов командной строки должен был ./hello u '*'