A resposta de Gilles dá 90% disso, mas o resto é para fazer o certo.
$ arr=(foo bar 'Hello World!')
$ ./foo "${arr[@]}"
Eu queria saber, se é possível criar um array_of_strings e enviá-lo para um programa C ++, que tem uma string de argumento array_of_strings []?
A resposta de Gilles dá 90% disso, mas o resto é para fazer o certo.
$ arr=(foo bar 'Hello World!')
$ ./foo "${arr[@]}"
Todos os programas recebem um array de strings como seus argumentos. Em C ++, os argumentos são o parâmetro argv
da função main
. O primeiro elemento dessa matriz é o nome do programa, os outros são os argumentos que você passa.
$ cat foo.cpp
#include <iostream>
int main (int argc, char *argv[]) {
for (int i = 1; i < argc; i++)
std::cout << argv[i] << std::endl;
return 0;
}
$ g++ -o foo foo.cpp
$ ./foo hello world
hello
world