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
É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.
Inversez le message dans l'enfant et envoyez-le au parent.
Clonez le repository
Solutions et compilez ex2. Exécutez-le et utilisez la commande shell kill pour lui envoyer des signaux.
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.
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