Bonjour,
En fait j'aimerai exécuter 10 fonctions en même temps, ou du moins lancer la première et ne plus m'en soucier, et sans attendre qu'elle finisse donc, lancer la 2eme, puis la 3eme, et ainsi de suite.
Elles sont donc lancées les unes à la suite des autres quasimment en même temps puis finissent toute seules.
Je pense donc qu'il faut créer un processus fils et exécuter cette fonction à partir du processus fils, etc...
Mais j'ai pas réussi après tatonnement multiples.
Voyons le code suivant, qui lance 10 fois la même fonction :
Code :
- pid_t pid = fork();
- for (int i=0; i< 10; i++)
- {
- if (pid > 0)
- while(waitpid(-1, NULL, WNOHANG) > 0);
- else
- {
- if (pid == 0)
- mafonction();
- }
- else
- perror("Impossible de créer le processus fils " );
|
En fait ça fonctionne pas car waitpid() dans ce cas attend que le fils soit terminé avant de continer (ce que je ne veux pas, je veux que le père continue en laissant son fils se débrouiller), mais si je vire la fonction waitpid(), 'perror' est appelé, ce qui veux dire que le fils n'est pas créé.
Donc si vous avez compris, pouvez-vous me dire le bon code ?
Ou bien un lien vers de la doc plus fournie que 'man fork'
Merci
---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com