Copia rápida de archivos con progreso

Estoy escribiendo una aplicación SDL para Linux, que funciona desde la consola (sin servidor X). Una función que tengo es un mecanismo de copia de archivos, que copia archivos específicos de HDD a un dispositivo USB Flash y muestra el progreso de esta copia en la interfaz de usuario. Para hacer esto, estoy usando un bucle while simple y copiando archivos por fragmentos de 8kB para obtener el progreso de la copia. El problema es que es lento. Puedo copiar un archivo de 100 MB en casi 10 minutos, lo cual es inaceptable.

¿Cómo puedo implementar una copia de archivo más rápida? Estaba pensando en una API asincrónica que leería el archivo de HDD a un búfer y almacenaría los datos en USB en un hilo separado, pero no sé si debería implementar esto yo mismo, porque no parece una tarea fácil. ¿Quizás conoces alguna API / biblioteca de C ++ que puede ser eso para mí? ¿O tal vez algún otro método mejor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta