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

  • Utiliser des descripterus de fichers
  • Utiliser dup2

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

  1. Lisez votre nom à partir du clavier en utilisant stdin. Imprimer le nom en utilisant stdout.N'utilisez pas le println!
  2. Imprimer le contenu d'un fichier reçu en tant qu'argument de ligne de commande sur stdout. N'utilisez pas le println!
  3. Écrivez la date d'aujourd'hui par redirection de stdout dans un fichier appelé output.txt en utilisant la fonction write_all.
  4. Créer un programme de sorte que la contenu d'un fichier qui est recu comme premier argument soit redirigée vers un fichier reçu en tant que deuxième argument - une fonctionnalité similaire à l'utilitaire cp de Linux.
  5. 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
sde2/laboratoare/03_rust.1679258426.txt.gz · Last modified: 2023/03/19 22:40 by cristiana.andrei
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0