Schnelle Dateikopie mit Fortschritt

Ich schreibe eine SDL-Anwendung für Linux, die von der Konsole aus funktioniert (kein X-Server). Eine meiner Funktionen ist ein Dateikopiermechanismus, der bestimmte Dateien von der Festplatte auf ein USB-Flash-Gerät kopiert und den Fortschritt dieser Kopie auf der Benutzeroberfläche anzeigt. Zu diesem Zweck verwende ich eine einfache while-Schleife und kopiere die Datei in 8-KB-Blöcken, um den Kopierfortschritt zu erhalten. Das Problem ist, dass es langsam ist. Ich kann eine 100-MB-Datei in fast 10 Minuten kopieren, was nicht akzeptabel ist.

Wie kann ich eine schnellere Dateikopie implementieren? Ich habe über eine asynchrone API nachgedacht, die Dateien von der Festplatte in einen Puffer liest und die Daten in einem separaten Thread auf USB speichert, aber ich weiß nicht, ob ich das selbst implementieren soll, da es keine einfache Aufgabe ist. Vielleicht kennen Sie eine C ++ API / Bibliothek, die das für mich kann? Oder vielleicht eine andere, bessere Methode?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage