Heim >Backend-Entwicklung >C++ >Was ist der schnellste Weg, um die Existenz einer Datei in C zu überprüfen?

Was ist der schnellste Weg, um die Existenz einer Datei in C zu überprüfen?

Susan Sarandon
Susan SarandonOriginal
2024-12-17 03:26:25117Durchsuche

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

Optimierung der Dateiexistenzprüfungen in C

Die Prüfung der Existenz einer Datei ist ein grundlegender Vorgang in der Programmierung, insbesondere wenn mit großen Dateimengen gearbeitet wird Dateien. In C gibt es für diese Aufgabe mehrere Methoden mit unterschiedlichen Leistungsmerkmalen.

Um die effizienteste Methode zu ermitteln, wurde ein Benchmark mit einem Testprogramm durchgeführt, das jede Methode 100.000 Mal ausführte, je zur Hälfte für vorhandene Dateien und für andere nicht vorhandene Dateien. Die Ergebnisse (gemittelt über 5 Durchläufe) sind unten zusammengefasst:

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

Wie aus den Ergebnissen hervorgeht, erweist sich posix stat() als die schnellste Methode, da sie nur 0,134 Sekunden benötigt, um 100.000 Prüfungen durchzuführen. Diese Methode nutzt den stat-Systemaufruf, um Informationen über die Datei, einschließlich ihrer Existenz, zu erhalten.

Um posix stat() in Ihrer exist-Funktion zu implementieren, können Sie den folgenden Code verwenden:

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

Durch die Verwendung von posix stat() können Sie die Existenz von Dateien in Ihren C-Programmen effizient überprüfen. Diese Methode ist besonders wertvoll beim Umgang mit großen Dateimengen, da ihre Geschwindigkeit die Gesamtverarbeitungszeit erheblich verkürzen kann.

Das obige ist der detaillierte Inhalt vonWas ist der schnellste Weg, um die Existenz einer Datei in C zu überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn