/ / Зміна бінарного файлу - c + +, windows, file, binary

Зміна бінарного файлу - c + +, windows, file, binary

У мене є файл у вікнах. Я пишу на C ++. У мене є проблема, коли мені потрібно видалити деякі байти з кінця файлу. Я використовую ifstream, але я не знаю, як видалити ці символи, просто покласти "

Відповіді:

2 для відповіді № 1

На машинах linux використовуйте скорочення (): http://linux.die.net/man/2/truncate

На комп'ютерах Windows використовуйте SetEndOfFile ():

http://msdn.microsoft.com/en-us/library/aa365531%28v=vs.85%29.aspx

Обидва виклики залежать від ОС.


2 для відповіді № 2

Ви не можете легко змінити розмір файлу, єдиний спосіб зробити це - скопіювати файл до тимчасового, потім видалити оригінал та перейменувати тимчасовий.

Якщо це всього лише припинення файлу, обидваWindows і Unix (але не обов'язково інші системи) мають функції системного рівня, які можуть це зробити, але нічого не існує в стандарті, який підтримує його. А якщо вам доведеться видаляти інші байти, ніж в кінці, ні Windows, ні Unix дозволяє це (хоча деякі інші системи роблять, принаймні, у конкретних випадках).


1 для відповіді № 3

Чому б не обрізати файл? Подивіться на chsize() метод