Rumah > Artikel > Operasi dan penyelenggaraan > Apakah perbezaan antara open dan fopen dalam Linux?
Perbezaan: 1. open ialah fungsi panggilan sistem UNIX, manakala fopen ialah fungsi perpustakaan bahasa C dalam standard ANSIC 2. open tidak semudah fopen; 3. fopen hanya boleh memanipulasi fail biasa; , manakala open boleh mengendalikan fail biasa, soket rangkaian, dsb. 4. open tidak mempunyai buffering, manakala fopen mempunyai buffering.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
sistem linux: perbezaan antara open dan fopen
1 sumber Dari perspektif, kedua-duanya boleh dibezakan dengan baik Ini juga merupakan perbezaan yang paling jelas antara keduanya:
ialah fungsi panggilan sistem UNIX (termasuk LINUX, dll.), yang mengembalikan a. deskriptor fail (f' d), iaitu indeks fail dalam jadual deskriptor fail;
open
ialah fungsi perpustakaan bahasa C dalam piawaian ANSIC, yang sepatutnya memanggil API kernel yang berbeza dalam sistem yang berbeza . Apa yang dikembalikan adalah penunjuk kepada struktur fail.
fopen
2. Kemudahalihan
Ini boleh disimpulkan daripada sumber di atas `fopen` ialah fungsi standard C, jadi ia mempunyai kemudahalihan yang baik panggilan sistem UNIX dengan mudah alih terhad. Untuk fungsi serupa di bawah tetingkap, gunakan fungsi API `CreateFile`.
3 Skop aplikasi
Mengembalikan deskriptor fail, dan deskriptor fail ialah konsep penting di bawah sistem UNIX, dan semua peranti di bawah UNIX adalah Beroperasi sebagai fail. Seperti soket rangkaian, peranti perkakasan, dsb. Sudah tentu, ini termasuk mengendalikan fail biasa.
fopen digunakan untuk memanipulasi fail biasa (Regular File). open
4. Tahap IO Fail
Dari perspektif IO fail, yang pertama ialah fungsi IO peringkat rendah, dan yang kedua ialah fungsi IO peringkat tinggi . Perbezaan mudah antara peringkat rendah dan peringkat tinggi ialah: siapa yang lebih dekat dengan kernel sistem. IO fail peringkat rendah berjalan dalam mod kernel, dan fail peringkat tinggi IO berjalan dalam mod pengguna.
5. Penimbalan
Sistem fail penimbal
fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind
open, close, read, write, getc, getchar, putc, putchar
, open
, dsb., dan yang terakhir digunakan bersama dengan fopen
, read
, dsb. write
fread
Menggunakan fungsi fwrite
, memandangkan terdapat penimbal dalam mod pengguna, penukaran antara mod pengguna dan mod kernel dikurangkan apabila melakukan operasi baca dan tulis fail (bertukar kepada mod kernel masih memerlukan memanggil sistem Memanggil API:
); fopen
read
Menggunakan fungsi write
memerlukan pertukaran antara mod kernel dan mod pengguna setiap kali semasa membaca dan menulis fail; prestasi ialah jika fail diakses secara berurutan, fungsi siri
yang dipanggil terus jika fail itu diakses secara rawak, sebaliknya adalah benar. open
Tutorial Video Linuxfopen
"open
Atas ialah kandungan terperinci Apakah perbezaan antara open dan fopen dalam Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!