Rumah > pembangunan bahagian belakang > C++ > Apakah Cara Terpantas untuk Semak Kewujudan Fail dalam C ?

Apakah Cara Terpantas untuk Semak Kewujudan Fail dalam C ?

Susan Sarandon
Lepaskan: 2024-12-17 03:26:25
asal
116 orang telah melayarinya

What's the Fastest Way to Check for File Existence in C  ?

Mengoptimumkan Semakan Kewujudan Fail dalam C

Menyemak kewujudan fail adalah operasi asas dalam pengaturcaraan, terutamanya apabila bekerja dengan set besar fail. Dalam C , beberapa kaedah wujud untuk tugasan ini, dengan ciri prestasi yang berbeza.

Untuk menentukan kaedah yang paling cekap, penanda aras telah dijalankan menggunakan program ujian yang menjalankan setiap kaedah 100,000 kali, separuh pada fail sedia ada dan separuh pada fail yang tidak wujud. Keputusan (purata lebih 5 larian) diringkaskan di bawah:

Method Time
ifstream 0.485s
FILE fopen 0.302s
posix access() 0.202s
posix stat() 0.134s

Seperti yang terbukti daripada keputusan, posix stat() muncul sebagai kaedah terpantas, mengambil hanya 0.134 saat untuk menyelesaikan 100,000 semakan. Kaedah ini memanfaatkan panggilan sistem stat untuk mendapatkan maklumat tentang fail, termasuk kewujudannya.

Untuk melaksanakan posix stat() dalam fungsi wujud anda, anda boleh menggunakan kod berikut:

inline bool exist(const std::string& name)
{
  struct stat buffer;
  return (stat (name.c_str(), &buffer) == 0); 
}
Salin selepas log masuk

Dengan menggunakan posix stat(), anda boleh mengesahkan kewujudan fail dalam program C anda dengan cekap. Kaedah ini amat berharga apabila berurusan dengan set fail yang besar, kerana kelajuannya boleh mengurangkan masa pemprosesan keseluruhan dengan ketara.

Atas ialah kandungan terperinci Apakah Cara Terpantas untuk Semak Kewujudan Fail dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan