TP 04 - Processus

Objectifs

Le but de ce TP est d'apprendre à utiliser

  • Le type Box
  • Utiliser des descripterus de fichers
  • Utiliser dup2
  • Utiliser fork et exec

Bibliographie

Sugestions

Transformer un String en CString peut être fait en utilisant

CString::new("ls").unwrap()

// utilisé pour trouver le descripteur de fichier 
use std::os::unix::io::AsRawFd;

Sujets

  1. Écrivez un programme qui alloue dynamiquement un String à l'aide de Box. Lisez un texte au clavier et ajoutez-le aux String allouée. Imprimez le String.
  2. Créez un programme qui utilise fork pour créer un processus enfant.
    1. dans le processus parent, imprimez son PID (des parents) et le PID de l'enfant. Dans le processus enfant, imprimez le PID du parent et son PID.
    2. Dans le processus enfant, attendez quelques secondes et imprimez ensuite un message.
    3. Dans le processus parent, affichez “En attente de la sortie du processus enfant”, attendez qu'il se termine (waitpid) et imprimez un message avant de quitter.
  3. Dans le processus enfant, exécutez la commande “ls -l”. Utilisez execvp. Le premier argument doit être identique à la commande.
  4. Redirigez la sortie du processus enfant (fd 1) vers un fichier appelé output.txt. Ouvrez le fichier en écriture et utilisez dup2.
    1. N'écrasez pas le fichier output.txt, ajoutez-y des données (fs :: OpenOptions)
sde2/laboratoare/05_new.txt · Last modified: 2022/04/12 00:25 by alexandru.radovici
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