Мне нужен способ получить все аргументы в одном указателе - строке, оканчивающейся на конец.
Использование любой формы функции main()
:
int main(int argc, char *argv[]) {...};
int main(int argc, char **argv) {...};
, которые являются эквивалентными сигнатурами для функции C main()
, позволят вам передать любое количество аргументов любого размера. Если вы хотите передать одну строку, содержащую много аргументов, просто передайте одну строку с каким-либо разделителем. Если в качестве разделителя используется пробел (" "
), то по определению поведения аргумента командной строки функции C main()
необходимо заключить их в "
:
Скажите ваш exe name is prog.exe
prog this,is,one,argument
prog "this is one argument" //double quotes provide cohesion between space delimited command line arguments
prog this-is-one-argument
Все они будут содержаться в одной переменной: argv[1]
Если вы скомпилируете это как echo.exe
, то в stdout
будет введена любая введенная вещь в stdin
:
int main(int argc, char **argv)
{
if(argv != 2) return 0;
fputs(argv[1], stdout);
return(0);
}
Использование: echo "this will be echoed onto stdout"<return>
Использование: abc000<return>
Использование: this-is-one-argument<return>