GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi systémovými voláními statvfs() a statfs()?

statfs() je zastaralé ve prospěch statvfs() , která se značně zabývá lepší s podporou velkých souborů. statfs() je známo, že dělá zvláštní věci pro velikosti, které přesahují hodnotu dlouhého bez znaménka.

Pokud vím (a pamatuji si), statvfs() existuje od Redhat 7.3, těsně poté, co byl představen jako náhrada POSIX. Pravděpodobně jej najdete na (většině) moderních systémů.


Err, "historické důvody".

Původně 4.4BSD definovalo statfs() volání. Linux později implementoval mírně odlišné volání se stejným názvem. Posix jej standardizoval mezi všemi freenixovými a unixovými verzemi definicí statvfs() .

statfs() je specifický pro OS

statvfs() je v souladu s posix

Protože všechny vracejí mírně odlišné struktury, ty, které přijdou později, nemohou nahradit první.

Obecně byste měli používat statvfs() , ten Posix. Dávejte si však pozor na radu "použijte Posix", protože v některých případech (například pty) je v praxi přenosnější BSD (nebo cokoliv jiného).


Pokud chcete pouze informace o kapacitě a využití systému souborů, ostatní odpovědi jsou správné:preferujte statvfs protože jde o standardní POSIX a lépe si poradí s velkými soubory. statfs je specifický pro BSD a Linux, každý s jinou strukturou. (Linux 2.6 přidal nový statfs64 a fstatfs64 systémová volání, která používají rozšířenou strukturu ke zpracování větších velikostí.) Nicméně statfs je v Linuxu stále užitečný pro určení typu souborového systému (za předpokladu, že jste v pořádku s psaním kódu specifického pro Linux).


Linux
  1. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  2. rozdíl mezi cgroups a jmennými prostory

  3. Jaký je rozdíl mezi voláním knihovny a voláním systému v Linuxu?

  1. Rozdíl mezi 2>&-, 2>/dev/null, |&, &>/dev/null A>/dev/null 2>&1?

  2. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  3. Rozdíl mezi Eot a Eof?

  1. Rozdíl mezi [0-9], [[:digit:]] a D?

  2. Rozdíl mezi Gtk a Qt aplikacemi?

  3. Jaký je rozdíl mezi normálním uživatelem a systémovým uživatelem?