Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Öffentliche, statische Methoden

static int mount (const char *filesystemtype, BlockDevice *bdev, const void *data)
 Siehe man 2 mount. Mehr ...
 
static void sync ()
 Schreibt Änderungen im Puffer auf die Festplattte. Siehe man 2 sync. Mehr ...
 
static int open (const char *pathname, int flags)
 Öffnet und erstellt (je nach flags) Dateien. Siehe man 2 open. Mehr ...
 
static int close (int fd)
 Schließt einen Dateideskriptor. Siehe man 2 close. Mehr ...
 
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. Mehr ...
 
static int truncate (const char *path, off_t length)
 Kürzt Datei an path auf Länge 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.
 
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 stat (const char *pathname, struct stat *statbuf)
 Liefert Dateistatus für pathname. Siehe man 2 stat. Mehr ...
 
static int fstat (int fd, struct stat *statbuf)
 Liefert Dateistatus für Dateideskriptor fd. Siehe man 2 fstat. Mehr ...
 
static int getdents (int fd, Dirent *dirp, int count)
 Liefert Verzeichniseinträge. Siehe man 2 getdents. Mehr ...
 
static int mkdir (const char *pathname)
 Erstellt Verzeichnis pathname. Siehe man 2 mkdir. Mehr ...
 
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.
 

Dokumentation der Elementfunktionen

◆ close()

int VFS::close ( int  fd)
static

Schließt einen Dateideskriptor. Siehe man 2 close.

Parameter
fdFiledeskriptor zum Schließen.

Es gelten die "NOTES" aus der manpage.

◆ fstat()

int VFS::fstat ( int  fd,
struct stat statbuf 
)
static

Liefert Dateistatus für Dateideskriptor fd. Siehe man 2 fstat.

Es gelten dieselben Limitierungen wie für stat.

◆ getdents()

int VFS::getdents ( int  fd,
Dirent dirp,
int  count 
)
static

Liefert Verzeichniseinträge. Siehe man 2 getdents.

Kann verwendet werden um ein readdir (man 3 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

◆ lseek()

off_t VFS::lseek ( int  fd,
off_t  offset,
int  whence 
)
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.)

◆ mkdir()

int VFS::mkdir ( const char *  pathname)
static

Erstellt Verzeichnis pathname. Siehe man 2 mkdir.

Limitierungen: -pathname darf nicht mit einem '/' enden.

◆ mount()

int VFS::mount ( const char *  filesystemtype,
BlockDevice bdev,
const void *  data 
)
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

◆ open()

int VFS::open ( const char *  pathname,
int  flags 
)
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

◆ stat()

int VFS::stat ( const char *  pathname,
struct stat statbuf 
)
static

Liefert Dateistatus für pathname. Siehe man 2 stat.

Limitierungen: -st_dev und st_rdev sind immer 0

◆ sync()

void VFS::sync ( )
static

Schreibt Änderungen im Puffer auf die Festplattte. Siehe man 2 sync.

Zurzeit nur nötig, um Änderungen an Inodes zu schreiben.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
  • fs/vfs.h
  • fs/vfs.cc