statfs, fstatfs − hole Dateisystemstatistiken
#include <sys/vfs.h>
int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);
gibt Informationen über ein aufgesetztes Dateisystem zurück. Path ist der Pfadname einer Datei in dem aufgesetzten Dateisystem. Buf ist ein Zeiger auf eine Struktur statfs, die wie folgt definiert ist:
struct statfs {
long f_type; /* Typ des Dateisystems (siehe unten) */
long f_bsize; /* optimale Übertragungsblockgröße */
long f_blocks; /* gesamte Datenblöcke im Dateisystem */
long f_bfree; /* freie Blöcke im Dateisystem */
long f_bavail; /* freie Blöcke verfügbar für nicht-Superuser */
long f_files; /* gesamte I-Nodes im Dateisystem */
long f_ffree; /* freie I-Nodes im Dateisystem */
fsid_t f_fsid; /* Dateisystemkennung */
long f_namelen; /* maximale Dateinamenlänge */
long f_spare[6]; /* Reserve */
};
Dateisystemtypen:
linux/ext2_fs.h: EXT2_OLD_SUPER_MAGIC 0xEF51
linux/ext2_fs.h: EXT2_SUPER_MAGIC 0xEF53
linux/ext_fs.h: EXT_SUPER_MAGIC 0x137D
linux/iso_fs.h: ISOFS_SUPER_MAGIC 0x9660
linux/minix_fs.h: MINIX_SUPER_MAGIC 0x137F /* orig. minix */
linux/minix_fs.h: MINIX_SUPER_MAGIC2 0x138F /* 30 Zeichen minix */
linux/minix_fs.h: NEW_MINIX_SUPER_MAGIC 0x2468 /* minix V2 */
linux/msdos_fs.h: MSDOS_SUPER_MAGIC 0x4d44
linux/nfs_fs.h: NFS_SUPER_MAGIC 0x6969
linux/proc_fs.h: PROC_SUPER_MAGIC 0x9fa0
linux/xia_fs.h: _XIAFS_SUPER_MAGIC 0x012FD16D
Felder, die für ein bestimmtes Dateisystem nicht definiert sind, sind auf −1 gesetzt. Fstatfs gibt die gleichen Informationen über eine offene Datei zurück, die über den Deskriptor fd definiert ist.
Bei Erfolg wird Null zurückgegeben. Im Fehlerfall wird −1 zurückgegeben und errno entsprechend gesetzt.
Für statfs:
ENOTDIR
Eine Komponente des Pfadpräfixes von Path ist kein Verzeichnis.
EINVAL |
path enthält ein Zeichen mit dem hochwerten Bit gesetzt (z.B. Umlaute). |
ENAMETOOLONG
Die Länge eine Komponente von path überschreitet 255 Zeichen, oder die Gesamtlänge von path überschreitet 1023 Zeichen. [Sind diese Werte korrekt für Linux??]
ENOENT |
Die Datei, auf die sich path bezieht, existiert nicht. |
||
EACCES |
Sucheberechtigung existiert für eine Komponente des Pfadpräfixes von path nicht. |
||
ELOOP |
Zu viele symbolische Links traten auf bei der Übersetzung von path. |
||
EFAULT |
Buf oder path zeigt auf eine ungültige Adresse. |
||
EIO |
Ein E/A-Fehler trat auf während des Lesens von oder des Schreibens auf das Dateisystem. |
Für fstatfs:
EBADF |
Fd ist kein gültiger Dateideskriptor. |
||
EFAULT |
Buf zeigt auf eine ungültige Adresse. |
||
EIO |
Ein E/A-Fehler trat auf während des Lesens von oder des Schreibens auf das Dateisystem. |