Здравствуйте, _hum_, Вы писали:
__>(читать текстовые файлы, насколько я понимаю, затратно, ибо в общем случае функции чтения делают перекодировку. при бинарном побайтовом же чтении не совсем понятно, как избавляться от EOF)
В бинарном файле нет никакого EOF, эго присутствие там эмулируется функцией чтения, если мы говорим о файловых функциях семейства stdio.
Но вот в начале UTFного файла может быть (а может и не быть)
BOM. Его не стоит копировать из файлов, кроме первого.