GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan antara panggilan sistem statvfs() dan statfs()?

statfs() tidak digunakan lagi karena statvfs() , yang menangani banyak lebih baik dengan dukungan file besar. statfs() diketahui melakukan hal-hal aneh untuk ukuran yang melebihi nilai unsigned long.

Sejauh yang saya tahu (dan ingat), statvfs() telah ada sejak Redhat 7.3, setelah diperkenalkan sebagai pengganti POSIX. Anda mungkin akan menemukannya di (kebanyakan) sistem modern.


Err, "alasan historis".

Awalnya 4.4BSD mendefinisikan statfs() panggilan. Linux kemudian menerapkan panggilan yang sedikit berbeda dengan nama yang sama. Posix membakukannya di antara semua versi freenix dan Unix dengan mendefinisikan statvfs() .

statfs() khusus untuk OS

statvfs() sesuai dengan posix

Karena mereka semua mengembalikan struktur yang sedikit berbeda, yang berikutnya tidak dapat menggantikan yang pertama.

Secara umum Anda harus menggunakan statvfs() , yang Posix. Berhati-hatilah dengan saran "gunakan Posix", karena dalam beberapa kasus (pty, misalnya) BSD (atau apa pun) lebih portabel dalam praktiknya.


Jika Anda hanya ingin kapasitas sistem file dan informasi penggunaan, jawaban lainnya benar:pilih statvfs karena ini adalah POSIX standar dan menangani ukuran file besar dengan lebih baik. statfs adalah BSD- dan Linux-khusus, dengan struktur yang berbeda pada masing-masing. (Linux 2.6 menambahkan statfs64 baru dan fstatfs64 panggilan sistem yang menggunakan struktur yang diperluas untuk menangani ukuran yang lebih besar.) Namun, statfs masih berguna di Linux untuk menentukan tipe sistem file (dengan asumsi Anda tidak keberatan menulis kode khusus Linux).


Linux
  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Perbedaan Antara 2>&-, 2>/dev/null, |&, &>/dev/null Dan>/dev/null 2>&1?

  3. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  1. Perbedaan Antara Eot dan Eof?

  2. Perbedaan Antara [0-9], [[:digit:]] Dan D?

  3. Perbedaan Antara Aplikasi Gtk Dan Qt?

  1. Apa Perbedaan Antara Pengguna Biasa dan Pengguna Sistem?

  2. Perbedaan Antara Snat dan Masquerade?

  3. Perbedaan Antara Sistem File Terdistribusi dan Cluster?