|
|
|
|
Bonjour,
Voici mon problème : j'utilise la fonction system pour exécuter un script shell dans un programme en langage c. Ce scipt shell possède des arguments ( $1 , $2 ...). J'aimerais pouvoir saisir ces arguments dans mon programme en langage c. J'ai cherché et tenté la commande suivante :
execl("mon script", argv[1],argv[2],(char*)NULL).
J'ai donc pensé que $1 correspondrait à argv[1] et ainsi de suite. Mais cette commande ne fonctionne pas. Quelqu'un pourrait m'expliquer pourquoi et me dire comment faire.
Merci d'avance pour votre aide.
Configuration: Windows Vista Firefox 3.0.6
Merci pour ton aide.
|
Oui, c'est normal puisque l'image du processus sera changée par celle du programme appelée.
|
Quand je disais "/bin/sh arg0 arg1", je sous-entendais de faire une chaîne de caractères qui contiendra la valeur de l'argument argv[0] argv[1] définit à l'exécution. Tu peux utiliser pour ça la fonction snprintf.
char commande[150]; snprintf(commande,sizeof commande,"/bin/sh tonscript script %s %s %s",argv[1], argv[2], argv[3]); system(commande); Google is your friend |