GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unterschied zwischen statvfs() und statfs() Systemaufrufen?

statfs() ist zugunsten von statvfs() veraltet , die beträchtlich handelt besser mit Unterstützung für große Dateien. statfs() ist dafür bekannt, seltsame Dinge bei Größen zu tun, die den Wert eines unsigned long überschreiten.

Soweit ich das beurteilen kann (und mich erinnere), statvfs() gibt es seit Redhat 7.3, kurz nachdem es als POSIX-Ersatz eingeführt wurde. Sie werden es wahrscheinlich auf (den meisten) modernen Systemen finden.


Ähm, "historische Gründe".

Ursprünglich definierte 4.4BSD einen statfs() Anruf. Linux implementierte später einen etwas anderen Aufruf mit demselben Namen. Posix standardisierte es zwischen allen Freenix- und Unix-Versionen, indem es statvfs() definierte .

statfs() ist betriebssystemspezifisch

statvfs() ist posixkonform

Da sie alle leicht unterschiedliche Strukturen zurückgeben, können spätere die ersten nicht ersetzen.

Im Allgemeinen sollten Sie statvfs() verwenden , die Posix. Seien Sie jedoch vorsichtig mit den Ratschlägen "benutze Posix", da in einigen Fällen (z. B. pty) der BSD (oder was auch immer) in der Praxis besser portierbar ist.


Wenn Sie nur Informationen zur Kapazität und Nutzung des Dateisystems wünschen, sind die anderen Antworten richtig:bevorzugen Sie statvfs weil es Standard-POSIX ist und große Dateigrößen besser handhabt. statfs ist BSD- und Linux-spezifisch, mit jeweils unterschiedlichen Strukturen. (Linux 2.6 hat den neuen statfs64 hinzugefügt und fstatfs64 Systemaufrufe, die eine erweiterte Struktur verwenden, um größere Größen zu verarbeiten.) statfs ist unter Linux immer noch nützlich, um den Dateisystemtyp zu bestimmen (vorausgesetzt, Sie sind damit einverstanden, Linux-spezifischen Code zu schreiben).


Linux
  1. Unterschied zwischen 2>&-, 2>/dev/null, |&, &>/dev/null und>/dev/null 2>&1?

  2. Was ist der Unterschied zwischen Sudo Su – und Sudo Su –?

  3. Unterschied zwischen Eot und Eof?

  4. Unterschied zwischen [0-9], [[:digit:]] und D?

  5. Unterschied zwischen Gtk- und Qt-Anwendungen?

Unterschied zwischen apt und apt-get erklärt

Was ist der Unterschied zwischen einem normalen Benutzer und einem Systembenutzer?

Unterschied zwischen $HOME und '~' (Tilde)?

Was ist der Unterschied zwischen Systemaufruf und Bibliotheksaufruf?

Was ist der Unterschied zwischen procfs und sysfs?

Was ist der Unterschied zwischen wahrscheinlichen und unwahrscheinlichen Aufrufen im Kernel?