Posez votre question Signaler

Fork sous linux

oreilledelest 500Messages postés 18 mai 2005Date d'inscription - Dernière réponse le 3 nov. 2005 à 17:49
Bonjour, j'aimerais savoir comment on peut créer des fils multiples avec le fork.
Merci
Lire la suite 

Fork sous linux »

1 réponses
Réponse
+4
moins plus
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
Ajouter un commentaire
Ce document intitulé « Fork sous linux » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?