Aidez moi si v'est possible :)

Fermé
man_utd Messages postés 2 Date d'inscription dimanche 18 octobre 2009 Statut Membre Dernière intervention 19 octobre 2009 - 18 oct. 2009 à 21:00
man_utd Messages postés 2 Date d'inscription dimanche 18 octobre 2009 Statut Membre Dernière intervention 19 octobre 2009 - 19 oct. 2009 à 23:47
Bonjour,
j'ai des exercice (matiere systeme d'exploitation Lunix) mais j'ai pas pu les resoudres , est ce que vous pouvez me donner les solutions. merci d'avance .

exe1 :
Ecrire une application qui affiche les paramètres passés sur la ligne de commande, qui affiche et qui retourne le nombre de ces paramètres. Vérifier le résultat grâce à la variable du shell qui stocke la valeur de retour (? en bash).

exe2 :
Ecrire une application qui additionne les nombres placés sur la ligne de commande et qui affiche le résultat. On nommera ce programme addition. (on peut utiliser atoi pour la conversion des chaine en entier)
int atoi(char * s)

exe3 :
Ecrire un programme affichant son pid et celui de son père. On nommera ce programme identite.

exe4 :
Reprendre le programme identite et ajouter un appel à la fonction sleep() pour attendre 10 secondes avant d'exécuter les appels getpid() et getppid().
unsigned int sleep(unsigned int s)
suspend l'exécution du programme pendant 5 secondes.
Vérifier que le terminal de commande où le programme est lancé est bien le père du processus correspon dant. Relancer ensuite le programme, mais en tâche de fond et en redirigeant la sortie dans un fichier :
. / exo > sortie &
et fermer la fenêtre en tapant exit. Attendre 10 secondes et regarder le contenu du fichier contenant la sortie du programme. Remarques?

exe5 :
Question 1
Nous allons essayer de reproduire le phénomène de « réaffiliation » des processus vu précédemment. Pour cela, il faut ajouter un appel à la fonction sleep(), de façon à ce que le père ait terminé son exécution avant que le fils n'ait appelé getppid().
Question 2
Ajouter un appel à la fonction wait(NULL) pour éviter que le père ne se termine avant le fils.
Question 3
Dans l'exercice précédent, utiliser wait pour obtenir le code de retour du fils et l'afficher.

exe6 :
Ecrire un programme créant 3 fils, faire en sorte que ceux-ci se terminent dans un autre ordre que l'ordre dans lequel ils ont été créés, puis demander un père d'attendre la fin des 3 fils et d'indiquer l'ordre dans lequel ils se terminent.

exe7 :
Question 3
Ecrire une application myshell reproduisant le comportement d'un terminal de commande. Cette appli-cation doit lire les commandes tapées au clavier, ou contenue dans un fichier, créer un nouveau processus et le recouvrir par la commande lue. Pour la commodité d'utilisation, on pourra faire en sorte que le terminal de commande affiche une invite (un prompt) avant de lire une commande :
Server02>./myshell
myshell>ls
extp3_1.c extp3_2.c identite myshell
soltp3_1.c soltp3_2.c soltp3_3.c
myshell>exit
menthe22>
On pensera à utiliser la fonction wait() afin d'attendre que l'exécution d'une commande soit terminée avant de lire et de lancer la suivante.
Que se passe-t-il si l'on tape à l'invite ls -l?

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
19 oct. 2009 à 07:48
Salut,

vous pouvez me donner les solutions.
Non.
En revanche si tu montres ce que tu as fait, tu pourrais avoir d'aide où ça coince.
0
man_utd Messages postés 2 Date d'inscription dimanche 18 octobre 2009 Statut Membre Dernière intervention 19 octobre 2009
19 oct. 2009 à 23:47
j'ai rien fait car je comprend pas cette maière c'est pour ça je demande votre aide
0