2016-11-29 5 views
1

Ich versuche, alle zugewiesenen Inodes im Dateisystem für xv6 zu durchlaufen und ich möchte die Dinode des Stammverzeichnisses und gehen von dort, aber ich hatte Schwierigkeiten, dies zur Arbeit zu bringen. Ich habe versucht, 'dirlookup()' zu verwenden, aber egal, was ich importierte, ich würde Fehler bekommen, die besagen, dass die Funktion nicht definiert ist.Get dinode/inode von Verzeichnis/Datei nach Name in XV6

Antwort

1

Ich weiß, ich bin zu spät zur Antwort, aber hier geht. Eine Inode-Nummer kann mit dem Befehl stat() abgerufen werden, und das Stammverzeichnis, in dem Sie sich gerade befinden, wird mit "." Genau wie Ihr Elternverzeichnis ist ".." Hier ist ein kurzes Beispiel, wie Sie die Inode-Nummer des Stammverzeichnisses erhalten können. Denken Sie daran habe ich keine Zeit, um dieses Recht zu testen, aber es ist das, was ich von der Nutzung xv6 erinnern

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

EDIT:
Auch dirlookup() ist defs.h definiert und implementiert in fs.c