2016-11-29 3 views
1

J'essaie de traverser tous les inodes alloués dans le système de fichiers pour xv6 et je veux obtenir le dinode du répertoire racine et aller de là, mais j'ai eu avoir du mal à faire fonctionner ça. J'ai essayé d'utiliser 'dirlookup()' mais peu importe ce que j'ai importé j'obtiendrais des erreurs en disant que la fonction n'est pas définie.Obtenir dinode/inode du répertoire/fichier par le nom dans XV6

Répondre

1

Je sais que je suis en retard à la réponse mais ici va. Un numéro d'inode peut être obtenu à partir de la commande stat(), et le répertoire racine dans lequel vous êtes actuellement est référencé par "." tout comme votre répertoire parent est ".." Voici un court exemple de la façon dont vous devriez obtenir le numéro d'inode du répertoire racine. Gardez à l'esprit que je n'ai pas le temps de tester ce droit, mais il est ce que je me souviens d'utiliser xv6

uint getRootInode() { 
    struct stat sb; 
    stat(".", &sb); 
    return sb.ino; 
} 

EDIT:
également dirlookup() est défini et mis en œuvre dans defs.hfs.c