Bonjour ,
C est peut etre une question bete : a quoi sert les appels de type exec ?
est ce que ca sert juste a diviser le code en plusieurs fichiers sources ou ont elles un autre interet autre que "esthetique" ?
Version imprimable
Bonjour ,
C est peut etre une question bete : a quoi sert les appels de type exec ?
est ce que ca sert juste a diviser le code en plusieurs fichiers sources ou ont elles un autre interet autre que "esthetique" ?
Gné?Citation:
Envoyé par Treuze
Tu as lu le man des fonctions?
En gros (selon la fonction), ca recouvre ton programme par le programme de ton choix.Citation:
Envoyé par le man
En fait ce que je vulais dire c plutot , y a t il un quelconque interet a decouper son programme "multiprocessus" et faire un exec pour chacun deux ?
Désolé je comprend vraiment pas ce que tu veux dire.
Un exemple concret???
l'intérêt des exec* c'est de faire du multiprocessus (et pas du multithreading), enfin pas seulement.
l'idée c'est de faire un fork() -> tu obtiens 2 processus identique, puis de faire un exec() sur l'un des 2 pour avoir 2 processus différents.
En fait ce que je voulais dire c est
forme 1 :
Code:
1
2
3
4
5
6
7
8
9 switch(fork){ case 0 : instruction1_processusA instruction2_processusA break; default : instruction1 instruction2
forme 2 :
Y a til un interet autre que l'allegement du code dans le passage de la forme 1 vers la forme 2 ?Code:
1
2
3
4
5
6
7
8
9 switch(fork) case 0 : execl("./fils","fils",NULL) //fils contient instruction1_processusA instruction2_processusA break; default : instruction1 instruction2
Y a til un interet autre que l'allegement du code dans le passage de la forme 1 vers la forme 2 ?
avec la forme1, le fils est l'exacte copie du père (bien qu'après le fork() tu leur donnes des comportements différents), c'àd par ex. :
si tu as:
int x= 2;
fork();
x existera pour le père et le fils et vaudra 2 (mais il n'est pas partagé, ce sont 2 programmes à part maintenant)
donc après c'est à toi de voir... si tu veux faire un processus totalement différent du père, il faut utiliser exec(), si tu veux garder les mêmes fonctions etc... forme1