GNU/Linux >> Tutoriales Linux >  >> Linux

¿Diferencia entre las llamadas al sistema statvfs() y statfs()?

statfs() está en desuso a favor de statvfs() , que trata considerablemente mejor con soporte para archivos grandes. statfs() se sabe que hace cosas extrañas para tamaños que superan el valor de un largo sin firmar.

Por lo que puedo decir (y recordar), statvfs() ha existido desde Redhat 7.3, justo después de ser presentado como un reemplazo de POSIX. Es probable que lo encuentre en (la mayoría de) los sistemas modernos.


Err, "razones históricas".

Originalmente, 4.4BSD definía un statfs() llamar. Linux luego implementó una llamada ligeramente diferente con el mismo nombre. Posix lo estandarizó entre todas las versiones de Freenix y Unix definiendo statvfs() .

statfs() es específico del sistema operativo

statvfs() es compatible con posix

Como todos ellos devuelven estructuras ligeramente diferentes, los que vendrán más tarde no pueden reemplazar al primero.

En general deberías usar statvfs() , el de Posix. Sin embargo, tenga cuidado con los consejos de "use Posix", ya que en algunos casos (pty, por ejemplo) el BSD (o lo que sea) es más portátil en la práctica.


Si solo desea información sobre la capacidad y el uso del sistema de archivos, las otras respuestas son correctas:prefiera statvfs porque es POSIX estándar y maneja mejor archivos de gran tamaño. statfs es específico de BSD y Linux, con diferentes estructuras en cada uno. (Linux 2.6 agregó nuevo statfs64 y fstatfs64 llamadas al sistema que usan una estructura expandida para manejar tamaños más grandes). Sin embargo, statfs sigue siendo útil en Linux para determinar el tipo de sistema de archivos (suponiendo que esté de acuerdo con escribir código específico de Linux).


Linux
  1. ¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

  2. ¿Diferencia entre 2>&-, 2>/dev/null, |&, &>/dev/null y>/dev/null 2>&1?

  3. ¿Cuál es la diferencia entre Sudo Su y Sudo Su?

  4. ¿Cuál es la diferencia entre procfs y sysfs?

  5. ¿Cuál es la diferencia entre llamadas probables e improbables en Kernel?

Explicación de la diferencia entre apt y apt-get

¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

¿Diferencia entre Snat y Masquerade?

¿Diferencia entre $HOME y '~' (tilde)?

¿Cuál es la diferencia entre las funciones de la familia exec de llamadas al sistema como exec y execve?

¿Cuál es la diferencia entre la llamada al sistema y la llamada a la biblioteca?