TP 05 - Communication Entre Processus

Objectifs

Le but de ce TP est d'apprendre à utiliser

  • La pipe
  • Utiliser les signeaux

Sugestions

Transformer un String en &[u8] peut être fait en utilisant

s.as_bytes()

Transformer un descripteur de fichier en File peut être fait en utilisant

let mut f = unsafe { fs::File::from_raw_fd(fd) };

Bibliographie

Sujets

  1. Écrivez un programme qui crée un tuyau et des bifurcations. Du parent, lisez à partir du clavier un message et envoyez-le par le canal à l'enfant.
    1. Inversez le message dans l'enfant et envoyez-le au parent.
  2. Clonez le repository Solutions et compilez ex2. Exécutez-le et utilisez la commande shell kill pour lui envoyer des signaux.
    1. Modifiez-le pour qu'à chaque fois qu'il reçoit un signal, il imprime une lettre différente : a - SIGHUP, b - SIGINT, n - SIQUIT, s - SIGTRAP, espace - SIGFPE. Écrivez un autre programme en Rust qui lui envoie des signaux pour qu'il imprime bannanas bannanas. Le deuxième programme reçoit le pid de destination à partir d'un argument de ligne de commande.
  3. Créez un programme qui fait fork et entre dans une boucle infinie (avec un sleep). Son enfant attend quelques secondes puis sort. Écrivez un message à l'écran lorsque l'enfant sort. Utilisez SIGCHLD.

Solutions

sde2/laboratoare/06_new.txt · Last modified: 2022/04/12 00:24 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