Programme se lançant lui même n fois ! - C - Programmation
Marsh Posté le 03-10-2009 à 22:18:21
ReplyMarsh Posté le 03-10-2009 à 22:26:01
ReplyMarsh Posté le 04-10-2009 à 01:12:18
fork() c'est le mieux.
Sinon solution simple:
Tu concatenes un nombre qui est le nombre de sous-execution restantes, et tu le decrementes a chaque appel.
tu lances:
exec("/bin/test " ++++(strcat ou snprintf) ++++ "5" );
qui lance:
exec("/bin/test " ++++(strcat ou snprintf) ++++ "4" );
qui lui-meme lance:
exec("/bin/test " ++++(strcat ou snprintf) ++++ "3" );
qui lui-meme lance:
exec("/bin/test " ++++(strcat ou snprintf) ++++ "2" );
qui lui-meme lance:
exec("/bin/test " ++++(strcat ou snprintf) ++++ "1" );
qui lui-meme lance:
exec("/bin/test " ++++(strcat ou snprintf) ++++ "0" );
Marsh Posté le 04-10-2009 à 23:40:17
amaowned a écrit : j'y est pensé ! |
amaowned a écrit : en fin de compte je ne voie pas la solution ! |
Tu as donc éliminé fork() de ton horizon de solutions. Est-il possible d'en connaître la raison ?
ravenX11 a écrit : Sinon solution simple: |
Urgh.
Marsh Posté le 08-10-2009 à 00:07:30
bon j'ai réussi ( depuis fort long temps)! Je suis passé par les arguments de la fonction main pour y arriver !
Honnêtement je ne vois pas comment je pourrai faire avec fork () ! Si dans le fork() je lui dit d'exécuter le même programme il va me recréer un autre fork qui va lui exécuter le même programme et ainsi de suite ...
Marsh Posté le 08-10-2009 à 01:44:11
avec le fork() tu peux savoir si tu est dans le père ou le fils, il suffit de faire tes multiples fork() que si tu est toujours dans le père.
Marsh Posté le 03-10-2009 à 17:33:31
Bonjour,
Je voudrai faire un programme qui se lance lui même grâce à la fonction exec !
Je n'arrive qu'à le faire de façon indéterminé c'est à dire le programme ne cesse de s'appeler lui même !
int main(int argc, char*argv[]) {
int i = 1;
printf("%d \n",i); // affiche i
execl("bin/test","test",NULL);
perror ("execl" );
}
return EXIT_SUCCESS;
}
moi je voudrai qu'il s'arrête au bout de n fois et donc qu'il affiche la valeur de i n fois
Comment faire ?
Merci !