Exécution sous unix [Résolu] - C - Programmation
Marsh Posté le 27-11-2005 à 20:58:21
Jeandoe a écrit : Bonjour, |
Je dois avouer que tu as exposé ton problème avec une certaine aisance et une très grande clarté . Donc voilà ce que j'ai compris...
Tu voudrais écrire un programme n° 1 qui fait saisir un nombre... et tu voudrais appeler un programme n° 2 en lui passant ce nombre en paramètre
Il te faut d'abord écrire le programme n° 2 recevant un paramètre
int main (int argc, argv[]) |
Maintenant, tu peux écrire le programme n° 1 faisant saisir un nombre et le passant au programme n° 2
int main () |
Tu compiles tes 2 programmes en y rajouant les headers qui vont bien ("man strtol" et "man execl" pour ça)... et tu lances le n° 1
Marsh Posté le 27-11-2005 à 23:05:44
Tu as tout compris et ce que tu m'as donné fonctionne à merveille.
Merci beaucoup!
Marsh Posté le 27-11-2005 à 20:40:21
Bonjour,
Je souhaite faire un petit programme en C sous Unix.
Le but est que mon programme principal puisse lancer un exécutable qui provient d'une fonction qui reçoit un entier en paramètre. Voilà ce que j'ai fait :
fonction.c :
void fonction(int n)
{
int i,somme=0;
for(i=0;i<=n;i++)
{
somme+=i;
}
printf("La somme vaut : %d",somme);
}
programme principal :
int main()
{
printf("Sur quel entier voulez-vous effectuer le calcul?\n" );
scanf("%d",&n);
**
sleep(2000);
}
Mon problème est que je ne vois pas comment utiliser la commande exécution sur mon éxecutable tout en rentrant l'entier n en paramètre.
Dois-je faire en commande unix un gcc fonction.c -o fonction puis en (**) faire un execlp? Ou alors faire en (**) un execlp("gcc","gcc","fonction.c","-o","fonction","NULL" )? mais le problème est que je ne vois pas où je peux mettre mon n
Merci par avance.
Message édité par Jeandoe le 28-11-2005 à 00:43:35