Corrigés exercices

Un article de HurdFr_Wiki.

Jump to: navigation, search

Cet article est une ébauche. Cela signifie qu'il est n'est pas considéré par son auteur comme terminé.
Vous êtes libre de l'améliorer et de retirer cet avertissement si vous jugez que l'article est maintenant finalisé.

Vous trouverez ici les corrigés des exercices proposés sur la page d'exercices. Le but est de fournir un ou plusieurs codes de solution mais aussi et surtout une explication détaillée des solutions (notamment avec d'abondants commentaires).

Il pourrait être intéressant de donner également des pistes avant le corrigé.

Sommaire

Corrections

IPC sans MiG

Solutions

IPC avec MiG

Solutions

Solution basique

Solution de l'exercice avec un nombre variable de clients, une taille maximum pour les noms de clients (256-strlen ("Hello, ") == 248)) et en n'utilisant pas libports. Écrite par Gaël `Kilobug' Le Mignot, modifiée par Manuel Menal.

Solution avancée

Cette solution transmet les messages en dehors du message (out of line) ce qui lui permet de ne pas imposer une limite arbitraire sur la taille du nom du client. Elle utilise également libports. Écrite par Gaël `Kilobug' Le Mignot.

Translator fortune

Solutions

Solution basique

Cette solution ne fonctionne qu'en lecture seule et utilise la commande fortune par défaut. Elle permet cependant de spécifier une commande différente en argument. Écrite par Gaël `Kilobug' Le Mignot et modifiée par Manuel Menal.

Pour la compiler :
make fortune CFLAGS=-D_FILE_OFFSET_BITS=64 LDFLAGS="-lports -ltrivfs -lfshelp"

Solution avancée

Cette solution fonctionne en lecture/écriture, avec la possibilité de spécifier une commande pour la lecture et une pour l'écriture. Écrite par Gaël `Kilobug' Le Mignot et modifiée par Manuel Menal.

Exemple d'utilisation :

$ settrans -ca .signature ./fortune-rw /games/fortune "/bin/cat > .sigstatic"
$ echo "Boring, default signature" > .signature 
$ cat .sigstatic 
Boring, default signature
$ cat .signature
We just joined the civil hair patrol!
Pour la compiler :
make fortune CFLAGS=-D_FILE_OFFSET_BITS=64 LDFLAGS="-lports -ltrivfs -lfshelp"