Производительность копирования файла с помощью fread / fwrite на USB

Я перед фрагментом кода , который копирует файл на usb-устройство. Следующая часть является важной:

while((bytesRead = fread(buf, 1, 16*1024, m_hSource)) && !bAbort) {
    // write to target
    long bytesWritten = fwrite(buf, 1, bytesRead, m_hTarget);

    m_lBytesCopied += bytesWritten;

Дело, по словам покупателя, довольно медленное по сравнению с обычной скоростью pc <-> usb. Я не кодировал это, поэтому моя работа - оптимизировать.

Поэтому мне было интересно, не лучше ли сначала прочитать файл целиком, а затем записать файл за один шаг. Но я не знаю, насколько это подвержено ошибкам. Код также проверяет после каждого шага копирования, все ли байты записаны правильно, так что это также может замедлить процесс.

Я не гуру C ++ и аппаратного обеспечения, поэтому я спрашиваю вас, ребята, как я могу ускорить процесс и сохранить успешное копирование.

8
задан Shiplu Mokaddim 21 January 2012 в 05:18
поделиться