![]() |
![]() |
Neznaika |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: ![]() ![]() ![]() |
Записываем MAGIC в "хвост" файла FileName:
Читаем 6 байт из "хвоста" файла и сравниваем их с MAGIC
Этот код не работает. Можно ли что-нибудь сделать, чтобы исправить ошибку??? |
![]() ![]() |
Neznaika |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 51 Пол: Мужской Репутация: ![]() ![]() ![]() |
В помощи Win32 Programmer's Reference для SetEndOfFile написано:
Цитата This function can be used to truncate or extend a file. If the file is extended, the contents of the file between the old EOF position and the new position are not defined. При увеличении - содержимое неопределено. Но, если в первом блоке кода написать
То есть размер файла FileName увеличится на MAGIC_SIZE, но в конце файла будут НУЛИ. А нули - это вполне определённое содержимое(они затёрли MAGIC, записанное WriteFile). Сообщение отредактировано: Neznaika - 24.08.2007 22:27 |
hardcase |
![]()
Сообщение
#3
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Содержимое не определено потому, что оно зависит от того, что было до этого записано на том кластере.
WriteFile не сразу пишет на диск - это было бы странно - данные сперва оказываются в файловом буфере операционки. Чтобы самостоятельно сбросить их на диск нужно вызвать FlushFileBuffers(hFile). По правде говоря, я так и не уяснил для чего вам нужны подобные трюки с файлами. Сообщение отредактировано: hardcase - 25.08.2007 0:25 -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 7:43 |