Fork sous linux

Utilisateur anonyme -  
crabs Messages postés 909 Statut Membre -
Bonjour, j'aimerais savoir comment on peut créer des fils multiples avec le fork.
Merci
A voir également:

1 réponse

crabs Messages postés 909 Statut Membre 507
 
Salut,
Si il s'agit de fils (au sens de père) et non de fils (pluriel de fil), fork est l'appel
qu'il te faut. Je présume que tu en C, voici le code typique de création d'un
processus fils
/* pour les includes */
#include <sys/types.h>
#include <unistd.h>

/* a mettre dans les déclarations de variables */
pid_t pid ;

/* là ou tu veux créer ton processus fils */
switch ( pid = fork() )
   case -1 : /* ERREUR LE FILS NE PEUT PAS ETRE CREE */
     perror( "fork()" ) ;
     break ; /* ou exit() suivant la gestion d'erreur mise en place */
  case 0: /* Attention a partir de là on est dans le processus fils */
     /* traitement du fils: obtenir son pid : getpid() [retour de fork dans le père] */
     break ;
  default : /* La on est dans le père: pid=pid du fils */
     /* code du père */
   }
/* attention ici le code sera exécuté par le père et le fils
/* fin de la fonction */

Maitenant si tu veux créer plusieur fils : tu appelles plusieurs fois fork(), à
chaque besoin...

Ne pas oublier de mettre en place la gestion de la mort des fils : 'man wait',
'man signal' et 'man waitpid'
A+, crabs
4