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

pipe(), dup() et dup2()


Exercice 1 - Tentative de détournement, à mains nues

Écrire un programme qui redirige la sortie standard vers un fichier, puis effectue un "ls" vers ce fichier. Il faut donc ouvrir ce fichier avec open(), puis utiliser dup2() afin que les accès ultérieurs à la sortie standard se fassent sur le fichier. Ensuite, on peut faire un execlp() pour lancer ls, et l'affichage se fera vers le fichier.

Exercice 2 - Tentative de détournement, à la fourchette

Exercice 3 - A-La, A-La-Queue-Leu-Leu

Exercice 4 - Arithmétique d'école primaire, en version distribuée

Dans cet exercice, on appelle co-processus un programme lancé par un autre programme, et contrôlé par ce dernier par l'intermédiaire de ses entrée et sortie standards. On veut ici écrire un programme dispatch, et des programmes addition, multiplication, soustraction (par exemple). Lorsqu'on lance addition, ce programme attend 2 nombres sur son entrée standard, séparés par des '\n', et renvoie leur somme sur la sortie standard (puis il attend à nouveau deux nombres). Ensuite, on lance dispatch, qui doit effectuer des opérations en utilisant les co-processus.