Donc, j'ai fondamentalement un vecteur args avec 1 argument par tableau que j'essaye de passer à un appel execv() dans unix. Execv accepte deux paramètres comme: int execv (const char * chemin, char * const argv []);Argument illégal Execv() Unix C++
Quelle est la meilleure façon de convertir mon vecteur de chaînes en un tableau de pointeurs? En ce moment, je suis en train de faire ce qui suit mais quand je le lance avec say, ps -a -f, ps me crie disant argument illégal. Toute aide est appréciée.
vector<string> args = tokenize(cmd);
char * arg[args.size()];
for(int j=0; j<args.size();j++)
{
arg[j] = (char*)args[j].c_str();
}
retval = execv(args[0].c_str(), arg);
.
>ps
PID TTY TIME CMD
635 ttys000 0:00.18 -bash
16106 ttys000 0:00.00 ./test cpp
12590 ttys001 0:00.02 -bash
>ps -a
ps: illegal argument: ?????
Ugh ... c'était ça. C'est ce qui se passe quand vous regardez la même chose pendant +8 heures en une journée. – rideon88