fwrite()
не знает, какие байты вы считаете "использованными".Когда вы называете это так:
fwrite(buffer, 1, sizeof(buffer), pFile );
будет записано sizeof(buffer)
байт.
Измените вызов на:
ret_val = fwrite(buffer, 1, used_bytes, pFile );
, где used_bytes
- это некотороепеременная, которую вы установили перед вызовом.
Вам также нужно будет изменить последующую проверку ошибок:
if(ret_val != used_bytes)
edit В этом случае, вы бы увиделихочу установить used_bytes
на strlen(buffer)
.