-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Le Jeudi 7 Février 2002 20:14, vous avez écrit : > Bonjour, > > Qu'appelle-t-on un fork? J'ai cru comprendre que cela correspondait au > dédoublement d'un programme dont chaque partie fonctionne de façon > indépendante (on ouvre deux konqueror ou deux Quanta par exemple). >
Non, cela ce sont des threads. La création d'un processus est effectuée en dupliquant le processus courant: l'appel système fork permet à un processus de créer une copie de lui-même, à l'exception de l'identificateur de processus. Le procesus qui s'est dupliqué est appelé le processus père, et le nouveau processus est appelé le processus fils. Au retour de fork, deux processus exécutent le même code. Son prototype est le suivant: #include <unistd.h> pid_t fork(void); Petit exemple: - --------- creer-processus.c ---------- #include <errno.h> #include <stdio.h> #include <unistd.h> void main (void) { pid_t pid; pid= fork(); if (pid == -1) perror ("fork"); else if (pid == 0) printf("Je suis le fils : pid = %d\n", pid); else printf("Je suis le père : pid = %d\n", pid); } - ----------------------------------- L'implémentation de l'appel système fork est située dans le fichier source kernel/fork.c . Si tu veux des explications très précises, tu peux consulter le livre suivant (d'où est issu le petit code source C): "Programmation Linux 2.0: API système et fonctionnement du noyau" par R;Card, E.Dumas, F. Mével aux éditions Eyrolles. > Merci C'est avec plaisir :o) > Alain Marc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE8Y9TvRwOtPf8WOOIRAiCkAKCD08R/ZYY5AUPeMjS27Mj6qXOG9QCfRvpN X62bIutjwiOLY+lmSsWpR3E= =gR0F -----END PGP SIGNATURE-----