Да, добавление чего-либо в файл изменяет его содержимое. В некоторых случаях это может не иметь большого значения, но для решения общего назначения вы никогда не должны полагаться на это.
В вашем конкретном случае заполнение файла - плохая идея.
Если у вас был фиксированный размер блока, в который должна входить каждая часть файла, можно было бы поместить часть файла в байты, указывающие, сколько байтов было добавлено. Например, если вы добавили семь байтов в качестве отступов, каждый байт заполнения должен быть 0x07. Когда вы позже рекомбинируете части, ваша программа сначала должна будет удалить прокладку. В данном примере он будет читать последний байт части, т. Е. 0x07, и заключить, что семь байтов должны быть удалены из конца файла.
Есть две проблем с этим подходом:
- максимального заполнение можно достигнуть, 0xFF = 255 байт
- если ни отступы не требуются вам придется добавить полный блок манекена прокладки, потому что ваша программа не может различать байт дополнений и исходный контент. Если часть файла закончилась на 0x01, и никакое дополнение не потребовалось, ваша программа объединения удалит последний бит из сегмента, тем самым повредив файл.
Если вы делаете это только ради удовольствия, вы можете взглянуть на исходный код программы split
, которую вы можете найти на BSD или GNU/Linux. Подсказка: прокладка не требуется.
нули довольны, как и те, двое, тройки и т. Д. Добавление нулей в файл изменит его содержимое. – NealB
Переопределение колеса? –