The shell is replacing the asterisk with the name of each file in the directory.
To pass a literal asterisk, you should be able to escape it:
$ ./a.out 123 \*
More Related Contents:
- Which characters need to be escaped when using Bash?
- How to execute a bash command stored as a string with quotes and asterisk [duplicate]
- How to avoid heredoc expanding variables? [duplicate]
- How do I escape the wildcard/asterisk character in bash?
- Variable containing multiple args with quotes in Bash
- Is there an easy way to pass a “raw” string to grep?
- Bash script to cd to directory with spaces in pathname
- Command to escape a string in bash
- How do I properly escape data for a Makefile?
- How to match a single quote in sed
- How to echo a variable containing an unescaped dollar sign in bash
- escaping newlines in sed replacement string
- Exactly how do backslashes work within backticks?
- Convert absolute path into relative path given a current directory using Bash
- How to remove files starting with double hyphen?
- awk in bash with ls and variable
- How to create a cron job using Bash automatically without the interactive editor?
- Division in script and floating-point
- Insert newline (\n) using sed
- How to loop through dates using Bash?
- How can I align the columns of tables in Bash?
- Why does getopts only work the first time?
- How to determine function name from inside a function
- How to pipe multiple commands into a single command in the shell? (sh, bash, …)
- How do I read user input into a variable in Bash?
- How to read from a file or standard input in Bash
- Count number of lines in a git repository
- How do you return to a sourced bash script?
- Signals received by bash when terminal is closed
- Is bash a programming language?