:: Enseignements :: Licence :: L3 :: 2016-2017 :: Programmation système en C ::
[LOGO]

fork() exec()


Exercice 1 - mise en route

Préparation : Ecrire un programme qui affiche bonjour, puis exécute un fork (sans switch, ne gérez pas son code de retour), puis affiche au revoir. Aviez-vous prévu le résultat ?

Exercice 2 - Anne, ma soeur Anne, ne vois-tu rien venir ?

Écrire un programme effectuant les opérations suivantes, dans l'ordre :
  • afficher "mon PID est <pid>" avec printf (sans retour à la ligne); pour obtenir le PID: getpid()
  • afficher "my PID is <pid>" avec write (toujours sans retour à la ligne)
  • fork()
  • afficher "je suis le <père|fils> et mon PID est <pid>" avec printf (toujours pas de retour à la ligne)
  • afficher "I am the <parent|child> process and my PID is" en utilisant write (toujours pas de retour à la ligne)
  • forcer l'affichage de tous ces messages, par exemple avec un puts("").

Comprenez-vous pourquoi l'affichage ne correspond pas tout à fait à ce qu'on attend ?

Exercice 3 - Hit the road, Jack

Exercice 4 - Accident de fourchette

Exercice 5 - Faire-parts de décès

Lorsqu'un processus fils se termine, le système envoie un signal SIGCHLD au processus père. Utiliser un handler de signal pour notifier sur la sortie standard de la terminaison des fils.

Exercice 6 - Au coeur des ténèbres

Ecrire un programme qui manipule un entier i, par exemple en lui attribuant la valeur .