GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra le chiamate di sistema statvfs() e statfs()?

statfs() è deprecato a favore di statvfs() , che tratta considerevolmente meglio con il supporto di file di grandi dimensioni. statfs() è noto per fare cose strane per le dimensioni che superano il valore di un long senza segno.

Per quanto ne so (e ricordo), statvfs() è in circolazione da Redhat 7.3, subito dopo essere stato introdotto come sostituto di POSIX. Probabilmente lo troverai su (la maggior parte) dei sistemi moderni.


Err, "ragioni storiche".

Originariamente 4.4BSD definiva un statfs() chiamata. Successivamente Linux ha implementato una chiamata leggermente diversa con lo stesso nome. Posix lo ha standardizzato tra tutte le versioni freenix e Unix definendo statvfs() .

statfs() è specifico del sistema operativo

statvfs() è conforme a posix

Dato che restituiscono tutte strutture leggermente diverse, quelle successive non possono sostituire la prima.

In generale dovresti usare statvfs() , quello Posix. Fai attenzione al consiglio "usa Posix", tuttavia, poiché in alcuni casi (pty, ad esempio) quello BSD (o qualsiasi altra cosa) è più portabile nella pratica.


Se desideri solo la capacità del file system e le informazioni sull'utilizzo, le altre risposte sono corrette:preferisci statvfs perché è POSIX standard e gestisce meglio file di grandi dimensioni. statfs è specifico per BSD e Linux, con strutture diverse su ciascuno. (Linux 2.6 ha aggiunto il nuovo statfs64 e fstatfs64 chiamate di sistema che utilizzano una struttura espansa per gestire dimensioni maggiori). Tuttavia, statfs è ancora utile su Linux per determinare il tipo di file system (supponendo che tu stia bene con la scrittura di codice specifico per Linux).


Linux
  1. Differenza tra shell di accesso e shell non di accesso?

  2. La differenza tra i comandi di arresto e arresto?

  3. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  4. Differenza tra Eot ed Eof?

  5. Differenza tra [0-9], [[:digit:]] e D?

Differenza tra apt e apt-get spiegato

Qual è la differenza tra Sudo Su – e Sudo Su –?

Differenza tra Snat e Masquerade?

Qual è la differenza tra chiamata di sistema e chiamata di libreria?

Qual è la differenza tra procfs e sysfs?

Qual è la differenza tra chiamate probabili e improbabili nel kernel?