0% ont trouvé ce document utile (0 vote)
22 vues1 page

Initiation à la Programmation Système C

Ce document présente un TD sur l'initiation à la programmation système en C, avec des exercices portant sur la gestion des processus. Les exercices incluent l'affichage des arguments de la ligne de commande, la création d'arbres généalogiques de processus, et l'utilisation des appels système fork et exec pour exécuter des commandes. Les étudiants sont également invités à développer un interpréteur de commandes simplifié.

Transféré par

Gilbert Bere
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)
22 vues1 page

Initiation à la Programmation Système C

Ce document présente un TD sur l'initiation à la programmation système en C, avec des exercices portant sur la gestion des processus. Les exercices incluent l'affichage des arguments de la ligne de commande, la création d'arbres généalogiques de processus, et l'utilisation des appels système fork et exec pour exécuter des commandes. Les étudiants sont également invités à développer un interpréteur de commandes simplifié.

Transféré par

Gilbert Bere
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

TD – Initiation à la Programmation système

Processus
Exercice 0
Ecrire un programme C qui affiche la liste des arguments de la ligne de commande qui lance
son exécution.

Exercice 1
Dessiner l’arbre généalogique engendré par l’exécution de chaque programme

Programme A #include<unistd.h>
main( ) {
fork();
fork();
fork();
}
Programme B #include<unistd.h>
main() {
(fork() && fork()) ;
}
Programme C #include<unistd.h>
main() {
( fork() || fork() ) ;
}
Programme D #include<unistd.h>
main() {
(fork()&&( fork() || fork() )) ;
}

Exercice 2
A l’aide de l'appel système fork() écrire un programme qui crée un nouveau processus.
Chaque processus affiche :
 la filiation (père ou fils),
 l'identifiant (pid),
 l'identifiant de son père (ppid),
 le propriétaire réel,
 le propriétaire effectif,
 le groupe propriétaire réel,
 le groupe propriétaire effectif.
Le processus père doit attendre la fin du processus fils avant de se terminer.

Exercice 3
1) A l’aide des primitives fork et execl, écrire un programme qui permet de faire exécuter la
commande ps avec l’option –l depuis un processus fils. Ce dernier devra se mettre en
attente du code retour de la commande ps.
2) Reprendre le programme précédent mais en utilisant la primitive execv.

Exercice 4
En utilisant les primitives fork(), execv() et wait(), écrire un interpréteur de commandes
simplifié dont le fonctionnement sera similaire à un shell.

Vous aimerez peut-être aussi