c++ main function, argc value is weird if command-line arguments contain * -
a simple piece of c++ code this:
int main(int argc, char **argv){ std::cout << "argc: " << argc << std::endl; } compiled g++ -o hello hello.cpp
- when run
./hello u, outputargc: 2; - when run
./hello u +, outputargc: 3; - when run
./hello u *, outputargc: 26, why26?
shell expansion. * expanded shell files in current directory, of there appear 24, , passes them individual arguments program.
since looks call unix shell, use
./hello u \* or
./hello u '*'
Comments
Post a Comment