TD 9: Tubes nommés

Tristan Crolard - François Pottier

Résumé:

mkfifo, unlink, setvbuf (POSIX 1)

Rappelons que les sujets et corrigés de chaque TD sont accessibles sur les machines des élèves, dans ~pottier/TD-Systems-98-99/. Essayez les programmes, modifiez-les, exécutez-les pas-à-pas, etc. pour mieux comprendre leur fonctionnement.

Producteurs/consommateur

On se propose d'écrire une application client/serveur permettant à un ou plusieurs utilisateurs de communiquer à travers un ``canal''. On écrira pour cela deux commandes :

Une seule commande listen pourra être lancée sur un canal donné. Par contre, plusieurs commandes speak pourront être lancées sur le même canal. Un canal sera implanté par un tube nommé. Le tube sera créé et détruit par la commande listen. On pourra supposer écrite un commande mycp dont le prototype est le suivant:
int mycp(FILE *in, FILE *out);
Attention, les flots seront gérés en mode ligne (on utilisera setvbuf).

La commande talk

Proposer une utilisation des deux commandes speak et listen pour simuler la commande talk qui permet à deux utilisateurs de communiquer de façon interactive.

Jean-Baptiste Yunes
1999-02-05