Imprimer
Catégorie : R3.05 - Programmation système
Affichages : 10662

Création/recouvrement de processus (1)

Création de processus

Père et fils

Écrire une fonction :

void affiche_car(const char *prefixe)

qui affiche la chaîne pointée par prefixe, suivie du message suivant :

Processus numéro : XXXX. Numéro du processus père : YYYY.

Remarque : afficher l'ensemble du message sur une seule ligne.

Écrire un programme créant un processus fils. Chaque processus (père et fils) doit afficher un message à l'aide de la fonction affiche_car().

Exécuter le programme plusieurs fois. Peut-on prédire le numéro du processus père écrit par le processus père ? Pourquoi ? Comment le vérifier ?

En attendant

Reprendre le programme précédent et mettre une instruction sleep(5), pour mettre en attente le processus fils pendant 5 secondes.  Que se passe-t-il ?

Fils et petit-fils

Écrire un programme C créant deux processus fils, chaque processus fils créera un processus petit-fils.  Chaque processus utilisera la fonction affiche_car() de la première question.  Les processus fils se termineront avec un code de retour de 0, et les petit-fils avec un code de retour de 1.

Tous les processus utiliseront la fonction wait() et la macro WIFEXITED(status) afin de tester le code de retour du processus terminé et afficher le message suivant :

Processus XXXX : mon fils YYYY s'est terminé normalement/anormalement

Avec plus de processus...