Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sde2:laboratoare:05_new [2022/03/28 18:44]
alexandru.radovici
sde2:laboratoare:05_new [2022/04/12 00:25] (current)
alexandru.radovici
Line 1: Line 1:
-====== TP 04 - Systems de fichiers ​======+====== TP 04 - Processus ​======
  
 ===== Objectifs ===== ===== Objectifs =====
Line 7: Line 7:
   * Utiliser dup2    * Utiliser dup2 
   * Utiliser fork et exec    * Utiliser fork et exec 
 +
  
 ===== Bibliographie ===== ===== Bibliographie =====
Line 13: Line 14:
   * fork [[https://​docs.rs/​nix/​0.23.1/​nix/​unistd/​fn.fork.html]]   * fork [[https://​docs.rs/​nix/​0.23.1/​nix/​unistd/​fn.fork.html]]
   * Unix functions [[https://​docs.rs/​nix/​0.23.1/​nix/​unistd/​index.html]]   * Unix functions [[https://​docs.rs/​nix/​0.23.1/​nix/​unistd/​index.html]]
 +
 +===== Sugestions =====
 +<​note>​
 +Transformer un String en CString peut être fait en utilisant ​
 +
 +<code rust>
 +CString::​new("​ls"​).unwrap()
 +</​code>​
 +</​note>​
 +
 +<​note>​
 +<code rust>
 +// utilisé pour trouver le descripteur de fichier ​
 +use std::​os::​unix::​io::​AsRawFd;​
 +</​code>​
 +</​note>​
  
 ===== Sujets ===== ===== Sujets =====
   - É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. ​   - É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. ​
-  ​+  ​- Créez un programme qui utilise fork pour créer un processus enfant.  
 +    - 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.  
 +    - Dans le processus enfant, attendez quelques secondes et imprimez ensuite un message.  
 +    - 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.  
 +  - Dans le processus enfant, exécutez la commande "ls -l". Utilisez execvp. Le premier argument doit être identique à la commande.  
 +  - Redirigez la sortie du processus enfant (fd 1) vers un fichier appelé output.txt. Ouvrez le fichier en écriture et utilisez dup2.  
 +    - N'​écrasez pas le fichier output.txt, ajoutez-y des données (fs :: OpenOptions)  
sde2/laboratoare/05_new.1648482282.txt.gz · Last modified: 2022/03/28 18:44 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