0% ont trouvé ce document utile (0 vote)
113 vues2 pages

TP Appelsystème

Ce document contient plusieurs exercices sur les appels système fork, wait, kill et execl en C. Les exercices portent sur la création de processus fils, l'attente de leur terminaison et l'arrêt de processus.

Transféré par

Med Aref
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
113 vues2 pages

TP Appelsystème

Ce document contient plusieurs exercices sur les appels système fork, wait, kill et execl en C. Les exercices portent sur la création de processus fils, l'attente de leur terminaison et l'arrêt de processus.

Transféré par

Med Aref
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP

Appels système
Exercice 1 :
1. Quel est le processus de pid 1 ?
2. Lancer le programme ci-dessous avec les arguments 10 20. Tapez ps -la dans un autre
terminal avant la fin du père, avant la fin du fils. Quels sont les ppid du père et du fils ?
Donnez une explication.
3. Lancer le programme ci-dessous avec les arguments 10 0. Tapez ps -la dans un autre
terminal avant la fin du père. Que constatez-vous ?
#include <unistd.h> /* necessaire pour les fonctions exec et fork */

#include<sys/types.h> /* necessaire pour la fonction fork */

#include <stdio.h> /* necessaire pour la fonction perror */

int main(int argc, char * argv[]) {

pid_t pid;

int attente_fils,attente_pere;

if(argc != 3) perror("usage: ex1 n m\n");

attente_pere = atoi(argv[1]);

attente_fils = atoi(argv[2]);

switch(pid=fork())

case -1:

perror("fork error");

break;

case 0:

sleep(attente_fils);

printf("fils attente finie\n");

break;

default:

sleep(attente_pere);

printf("pere attente finie\n");

break; } }
Exercice 2
Ecrire un programme qui crée 10 processus fils. Chacun d’entre eux devra afficher son
numéro d’ordre entre 0 et 10. Vérifier que votre programme affiche 100 caractères.

Exercice 3 : La fonction kill()


1. Ecrire un programme qui crée un processus fils qui affiche à chaque seconde le nombre
de secondes écoulées. Le processus père arrête le processus fils au bout de 10 secondes.

Exercice 4 : La fonction wait()


1. Ecrire un programme qui crée 2 processus l’un faisant la commande ls -l, l’autre ps -l. Le
père devra attendre la fin de ses deux fils et afficher quel a été le premier processus à
terminer.

Exercice 5 : La fonction execl()


1. Donnez le code source C d'un programme affichez.c qui affiche à l'écran la chaîne de
caractères qui lui est passée en paramètre en ligne de commande.
Exemple d'utilisation : affichez coucou
Compiler et tester ce programme.
2. Ecrire un programme prog1 qui crée un processus fils qui exécute affichez avec
l’argument salut. On utilisera la fonction execl.

Vous aimerez peut-être aussi