This shows you the differences between two versions of the page.
sde2:laboratoare:06_new [2022/04/05 01:50] alexandru.radovici |
sde2:laboratoare:06_new [2022/04/12 00:24] (current) alexandru.radovici |
||
---|---|---|---|
Line 5: | Line 5: | ||
* La pipe | * La pipe | ||
* Utiliser les signeaux | * Utiliser les signeaux | ||
+ | |||
+ | ===== Sugestions ===== | ||
+ | |||
+ | <note> | ||
+ | Transformer un String en &[u8] peut être fait en utilisant | ||
+ | |||
+ | <code rust> | ||
+ | s.as_bytes() | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | Transformer un descripteur de fichier en ''File'' peut être fait en utilisant | ||
+ | |||
+ | <code rust> | ||
+ | let mut f = unsafe { fs::File::from_raw_fd(fd) }; | ||
+ | </code> | ||
+ | </note> | ||
Line 15: | Line 33: | ||
- É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. | - É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. | - Inversez le message dans l'enfant et envoyez-le au parent. | ||
- | | + | - Clonez le repository [[https://github.com/UPB-FILS-SdE2/Solutions/tree/main|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 ===== | ||
+ | [[https://github.com/UPB-FILS-SdE2/Solutions/tree/main/tp5|Solutions]] |