Table of Contents

TP 05 - Communication Entre Processus

Objectifs

Le but de ce TP est d'apprendre à utiliser

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

Solutions