URL: https://linuxfr.org/forums/programmation-c/posts/lancer-un-programme-comment Title: Lancer un programme, comment ? Authors: Pinaraf Date: 2004年10月16日T20:42:07+02:00 Tags: Score: 0 Bonsoir Pour mon programme en C++, j'ai besoin d'exécuter des programmes externes sans passer par l'appel system qui lance /bin/sh. On m'a donné une fonction utilisant fork et wait4, mais le problème c'est qu'il faut lui donner un tableau. J'aimerais soit savoir comment la transformer pour lui donner un nombre d'arguments variable, soit savoir quelle fonction (C++ si possible, donc qui accepte des std::string) utiliser pour remplacer system. J'accepte toute autre idée off course :) Merci d'avance PS : voici le code de la fonction actuelle : Elle se comporte EXACTEMENT comme un system, et lance donc /bin/sh, ce que je ne veux pas :( _int my_system(std::string commande) { char *parms[4]; parms[0]="sh"; parms[1]="-c"; parms[2]=(char *)commande.data(); parms[3]=NULL; int pid; if((pid=fork())>0) { execv("/bin/sh", parms); } else if(pid==0) { int ret; wait4(pid, &ret, 0, NULL); return ret; } else if(pid<0) { std::cerr << "Mechant fork! il veut pas marcher!" << std::endl; } return -1; }_ (Merci à phh pour cette fonction)