Aufgabe 7: Anwendung
Virtual File System - POSIX-ähnliche Dateisystem-Schnittstelle. More...
#include <fs/vfs.h>
Static Public Member Functions | |
static int | mount (const char *fstype, BlockDevice *bdev, const void *data) |
Siehe man 2 mount. More... | |
static int | umount () |
Siehe man 2 umount. More... | |
static void | sync () |
Schreibt Änderungen im Puffer auf die Festplatte. Siehe man 2 sync. More... | |
static int | open (const char *pathname, int flags) |
Öffnet und erstellt (je nach flags) Dateien. Siehe man 2 open. More... | |
static int | close (int fd) |
Schließt einen Dateideskriptor. Siehe man 2 close. More... | |
static ssize_t | read (int fd, void *buf, size_t count) |
Lesen von einem Dateideskriptor fd in Speicher buf der Länge count . Siehe man 2 read. | |
static ssize_t | write (int fd, const void *buf, size_t count) |
Schreiben von Daten aus Speicher buf der Länge count an Dateideskriptor fd . Siehe man 2 write. | |
static off_t | lseek (int fd, off_t offset, int whence) |
Ändert den aktuellen offset für Dateideskriptor fd . Siehe man 2 lseek. More... | |
static int | truncate (const char *path, off_t length) |
Setzt die Länge der Datei an path auf length . Siehe man 2 truncate. | |
static int | ftruncate (int fd, off_t length) |
Kürzt Datei für Dateideskriptor fd auf Länge length . Siehe man 2 ftruncate. | |
static int | link (const char *oldpath, const char *newpath) |
Neuer Name newpath für Datei oldpath . Siehe man 2 link. More... | |
static int | symlink (const char *target, const char *linkpath) |
Erstellt einen symbolischen Verweis mit Inhalt target. Siehe man 2 symlink. | |
static int | unlink (const char *pathname) |
Löscht Namen und bei keinem verbleibenden Verweis mehr die Datei pathname . Siehe man 2 unlink. | |
static int | rmdir (const char *pathname) |
Löscht Verzeichnis pathname . Siehe man 2 rmdir. | |
static int | rename (const char *oldpath, const char *newpath) |
Verschieben von Dateien/Verzeichnissen. Siehe man 2 rename. | |
static int | stat (const char *pathname, struct stat *statbuf) |
Liefert Dateistatus für pathname . Siehe man 2 stat. More... | |
static int | lstat (const char *pathname, struct stat *statbuf) |
Liefert Dateistatus für pathname . Siehe man 2 lstat. More... | |
static int | fstat (int fd, struct stat *statbuf) |
Liefert Dateistatus für Dateideskriptor fd . Siehe man 2 fstat. More... | |
static ssize_t | readlink (const char *pathname, char *buf, size_t bufsiz) |
Liest den Inhalt eines symbolischen Verweises. Siehe man 2 readlink. More... | |
static int | getdents (int fd, Dirent *dirp, int count) |
Liefert Verzeichniseinträge. Siehe man 2 getdents. More... | |
static DIR * | opendir (const char *name) |
Öffnet ein Verzeichnis name . Siehe man 3 opendir. | |
static struct Dirent * | readdir (DIR *dirp) |
Liest einen Verzeichniseintrag. Siehe man 3 readdir. | |
static void | rewinddir (DIR *dirp) |
Setzt die Position im Verzeichnis zurück. Siehe man 3 rewinddir. | |
static int | closedir (DIR *dirp) |
Schließt ein Verzeichnis. Siehe man 3 closedir. | |
static int | mkdir (const char *pathname) |
Erstellt Verzeichnis pathname . Siehe man 2 mkdir. More... | |
static int | chdir (const char *path) |
Wechselt in Verzeichnis path . Siehe man 2 chdir. | |
static int | fchdir (int fd) |
Wechselt in Verzeichnis fd . Siehe man 2 fchdir. | |
Detailed Description
Virtual File System - POSIX-ähnliche Dateisystem-Schnittstelle.
Alle Funktionen geben im Fehlerfall eine negative errno zurück.
Limitierungen: -Zeitstempel werden nie aktualisiert -Zugriffsrechte werden nie überprüft -setzt die UID und GID von neu erstellte Dateien auf 0 (root) -setzt die Zeitstempel von neu erstellen Dateien auf 0 (1.1.1970) -Dateideskriptoren und das aktuelle Arbeitsverzeichnis sind global
Member Function Documentation
|
static |
Siehe man 2 mount.
Limitierungen: -target (siehe manpage) ist immer "/". -es werden keine Flags unterstützt -an Stelle des source Strings wird ein BlockDevice übergeben
|
static |
Siehe man 2 umount.
Gibt -EBUSY zurück, falls das Dateisystem noch verwendet wird (offene Dateien). Limitierungen: -target (siehe manpage) ist immer "/".
|
static |
Schreibt Änderungen im Puffer auf die Festplatte. Siehe man 2 sync.
Zurzeit nur nötig, um Änderungen an Inodes zu schreiben.
|
static |
Öffnet und erstellt (je nach flags) Dateien. Siehe man 2 open.
Limitierungen: -mode ist immer 0777 -unterstützte Flags sind: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_EXCL
|
static |
Schließt einen Dateideskriptor. Siehe man 2 close.
- Parameters
-
fd Filedeskriptor zum Schließen.
Es gelten die "NOTES" aus der manpage.
|
static |
Ändert den aktuellen offset
für Dateideskriptor fd
. Siehe man 2 lseek.
Unterstützt kein SEEK_DATA oder SEEK_HOLE. (Mit lseek(fd, 0, SEEK_END) lässt sich die Größe einer Datei herausfinden.)
|
static |
Neuer Name newpath
für Datei oldpath
. Siehe man 2 link.
Falls oldpath ein Symlink ist wird ein Hardlink auf den Symlink erstellt, nicht auf die Datei auf die der Symlink zeigt. (Selbes Verhalten wie Linux, siehe NOTES in der Manpage.)
|
static |
Liefert Dateistatus für pathname
. Siehe man 2 stat.
Limitierungen: -st_dev und st_rdev sind immer 0
|
static |
Liefert Dateistatus für pathname
. Siehe man 2 lstat.
Es gelten dieselben Limitierungen wie für stat. Falls pathname ein Symlink ist liefert lstat im Gegensatz zu stat Informationen über den Symlink, nicht über die Datei auf die der Symlink zeigt.
|
static |
Liefert Dateistatus für Dateideskriptor fd
. Siehe man 2 fstat.
Es gelten dieselben Limitierungen wie für stat.
|
static |
Liest den Inhalt eines symbolischen Verweises. Siehe man 2 readlink.
Achtung: Der Buffer wird nicht null-terminiert.
|
static |
Liefert Verzeichniseinträge. Siehe man 2 getdents.
Wird verwendet um readdir zu implementieren. Das Dirent struct ähnelt dem linux_dirent64 struct aus der manpage, allerdings sind d_ino und d_off nicht unbedingt 64-bit Werte. Limitierungen: -d_off ist immer 0
|
static |
Erstellt Verzeichnis pathname
. Siehe man 2 mkdir.
Limitierungen: -pathname darf nicht mit einem '/' enden.
The documentation for this class was generated from the following files:
- fs/vfs.h
- fs/vfs.cc