This shows you the differences between two versions of the page.
sde2:laboratoare:04_new [2022/03/22 00:43] alexandru.radovici |
sde2:laboratoare:04_new [2022/04/05 01:18] (current) alexandru.radovici |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TP 04 - Systems de fichiers ====== | + | ====== TP 03 - Systems de fichiers ====== |
===== Objectifs ===== | ===== Objectifs ===== | ||
Line 11: | Line 11: | ||
<note> | <note> | ||
Transformer un buffer (&[u8]) en string (str) peut être fait en utilisant | Transformer un buffer (&[u8]) en string (str) peut être fait en utilisant | ||
+ | |||
<code rust> | <code rust> | ||
std::str::from_utf8(&buffer[0..len]).unwrap() | std::str::from_utf8(&buffer[0..len]).unwrap() | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | Importations utiles | ||
+ | |||
+ | <code rust> | ||
+ | // utilisé pour les permissions Linux | ||
+ | use std::os::unix::fs::MetadataExt; | ||
+ | |||
+ | // utilisé pour trouver le descripteur de fichier | ||
+ | use std::os::unix::io::AsRawFd; | ||
+ | |||
+ | // utilisé pour la fonction read | ||
+ | use std::io::Read; | ||
+ | |||
</code> | </code> | ||
</note> | </note> | ||
Line 28: | Line 45: | ||
===== Sujets ===== | ===== Sujets ===== | ||
+ | - Écrivez un programme qui reçoit en paramètre un dossier. Imprimer le contenu du dossier. | ||
- Écrivez un programme qui reçoit en argument de ligne de commande un fichier et une tâche. Mettre en œuvre les tâches : | - Écrivez un programme qui reçoit en argument de ligne de commande un fichier et une tâche. Mettre en œuvre les tâches : | ||
- **print** - imprime le contenu du fichier | - **print** - imprime le contenu du fichier | ||
Line 33: | Line 51: | ||
- **owner** - affiche l'utilisateur (uid) et le groupe (gid) du fichier | - **owner** - affiche l'utilisateur (uid) et le groupe (gid) du fichier | ||
- **mode_number** - affiche le mode (permissions) en numero du fichier | - **mode_number** - affiche le mode (permissions) en numero du fichier | ||
+ | - **type** - le type de fichier: dossier, fichier, lien, périphérique caractère, périphérique bloc, ... | ||
- **mode_text** - affiche le mode (permissions) en text (rwx...) du fichier | - **mode_text** - affiche le mode (permissions) en text (rwx...) du fichier | ||
- | - **type** - le type de fichier: dossier, fichier, lien, périphérique caractère, périphérique bloc, ... | + | - **print_buffer** - imprimez le contenu du fichier à l'aide des fonctions open et read. |
- | - Écrivez un programme qui reçoit en paramètre un dossier. Imprimer le contenu du dossier. | + | |
+ | ===== Solutions ===== | ||
+ | [[https://github.com/UPB-FILS-SdE2/Solutions/tree/main/tp3|Solutions]] | ||