]> git.ameliathe1st.gay Git - voyage-au-centre-des-fichiers.git/commitdiff
Définition des lignes et fichiers texte. Décision de la non-nécessité d'existence...
authorAmelia Coutard <eliottulio.coutard@gmail.com>
Sun, 17 Dec 2023 01:20:11 +0000 (02:20 +0100)
committerAmelia Coutard <eliottulio.coutard@gmail.com>
Sun, 17 Dec 2023 01:20:11 +0000 (02:20 +0100)
doc.txt

diff --git a/doc.txt b/doc.txt
index 3c9651599143ecbd257c219c5feef0a5b560838d..5bfd000ae5370a956ff6dcf6d01b39b3e42843e9 100644 (file)
--- a/doc.txt
+++ b/doc.txt
@@ -20,6 +20,9 @@ Principes de base:
 Tout processus a une vue du système de fichiers.
 Ce système de fichier est composé de deux types de fichiers:
        - Les fichiers simples, qui contiennent des octets.
+               On dit d'un fichier simple qu'il est un fichier texte s'il est composé uniquement de 0, 1, ou plusieurs lignes.
+               Une ligne est une séquence de caractères UTF-8 valides, suivie d'un \n.
+               Tout fichier texte se termine donc par un \n.
        - Les répertoires, qui contiennent d'autres fichiers.
 Il y a un répertoire racine, nommé "/", dont on accède à l'enfant "<fichier>" via "/<fichier>".
 Pour nommer l'enfant <fichier> du répertoire <répertoire>, on utilise "<répertoire>/<fichier>".
@@ -28,6 +31,8 @@ soit relatif (ne commence pas par un slash), auquel cas on considère le premier
 Le chemin "" est un chemin relatif qui désigne le répertoire spécifié dans l'appel.
 "<répertoire>/<répertoire-bis>/.." se réfère toujours à "<répertoire>", de manière pûrement lexicale (si tant est que "<répertoire>/<répertoire-bis>" existe).
 "/.." se réfère à "/".
+Pour la lecture, un répertoire se présente comme un fichier texte avec pour contenu la liste des noms des fichiers qu'il contient,
+avec un slash après le nom des répertoires, et un retour à la ligne après chaque nom (après le slash, pour les répertoires).
 
 Quand un fichier est ouvert, un descripteur lui est assigné.
 Ce descripteur stocke un indice qui correspond à la position courante dans le fichier.
@@ -57,10 +62,9 @@ enum open_options {
 
 ssize_t mount_kernel_device(fd_t wd, char device, char const path[path_len], ssize_t path_len);
        %rax = 0
-       Essaye de monter le système de fichier noyau au chemin path.
-       Ne fonctionne que si "<wd>/<path>" est un chemin existant.
-       Désormais, "<wd>/<path>" ne se réfère plus a son ancien usage, mais uniquement au système monté.
-       Retourne -1 si wd n'existe pas et que le chemin est relatif, ou si path n'existe pas, ou si device n'existe pas.
+       Essaye de monter le système de fichiers noyau au chemin path.
+       Désormais, "<wd>/<path>" ne se réfère plus a son hypothétique ancien fichier, mais à la racine du système de fichiers monté.
+       Retourne -1 si wd n'existe pas et que le chemin est relatif, ou si device n'existe pas.
                Alors l'arbre de fichiers du processus n'est pas modifié.
        Sinon, retourne 0.
                Alors l'arbre de fichiers du processus est modifié comme spécifié.
@@ -92,6 +96,7 @@ ssize_t write(fd_t file, char const data[len], ssize_t len);
        Mets la position courante à l'octet suivant le dernier octet écrit.
        Lis les octets à écrire dans data.
        Retourne -1 en cas d'échec, sinon retourne le nombre d'octets écrits.
+       Échoue toujours si file est un répertoire.
 
 ssize_t close(fd_t file);
        %rax = 4