This is an old revision of the document!
TP 03 - Fichiers et descripterus de fichiers
Objectifs
Le but de ce TP est d'apprendre à utiliser
Les appels système dup et dup2
dup
L'appel système dup() crée une copie d'un descripteur de fichier.
Il utilise le descripteur inutilisé portant le numéro le plus bas pour le nouveau descripteur.
Si la copie est créée avec succès, les descripteurs de fichier d'origine et de copie peuvent être utilisés de manière interchangeable.
Ils se réfèrent tous les deux à la même description de fichier ouvert et partagent donc les indicateurs de décalage de fichier et d'état de fichier.
dup2
L'appel système dup2() est similaire à dup() mais la différence fondamentale entre eux est qu'au lieu d'utiliser le descripteur de fichier inutilisé portant le numéro le plus bas, il utilise le numéro de descripteur spécifié par l'utilisateur.
Lors de l'appel de
dup2 dans Rust, les paramètres donnés doivent être l'ancien descripteur de fichier et le nouveau.
Redirections
Quand vous voulez rediriger stdout vers un fichier vous pouvez le faire en ouvrant un fichier à l'aide de l'appel système open(), puis en dupliquant ce descripteur de fichier sur stdout en utilisant dup2(), de sorte que la sortie standard soit maintenant représentée par le fichier ouvert et non par la console.
Bibliographie
Sujets
Lisez votre nom à partir du clavier en utilisant
stdin. Imprimer le nom en utilisant
stdout.
N'utilisez pas le println!
Imprimer le contenu d'un fichier reçu en tant qu'argument de ligne de commande sur
stdout.
N'utilisez pas le println!
Lisez 3 chiffres sur le clavier en utilisant stdin. Écrivez le maximum de ces 3 nombres dans le fichier maximum.txt.
Copiez le contenu d'un fichier donné comme argument depuis la ligne de commande dans un fichier nommé copy.txt
Écrivez la date d'aujourd'hui par
redirection de stdout dans un fichier appelé output.txt en utilisant la fonction
write_all.
Lisez 5 noms de filles à partir du clavier en utilisant
stdin et ecrivez-les dans un fichier appelee
names.txt en utilisant stdout. Executez encore une fois le programme et Lisez 5 noms de garçons à partir du clavier. Il faut
ajouter les noms de garçons aux noms des filles deja existantes dans
names.txt, pas d'écraser le fichier!
Hint: utilisez OpenOptions pour ajouter au fichier