2015-06-08 7 views
5

Как говорится в названии; Могу ли я полагаться на MemoryMappedFile, чтобы всегда создавать файл с нулями? Я протестировал, прочитав несколько вновь созданных файлов, но это «тестирование» кажется бесполезным, хотя мне еще предстоит увидеть ненулевой байт.Является ли MemoryMappedFile.CreateNew (...) гарантией создания файла с нулями?

Есть ли какая-либо документация по этому поводу, которую я пропустил, или это просто данные, что файлы с отображением памяти пусты при создании.

ответ

1

Нет, это не гарантируется. Это похоже на специфику реализации.

Не указано в MemoryMappedFile, поведение базового API-интерфейса, которое оно использует в собственном .NET (CreateFileMapping), явно документирует это и отличается в зависимости от источника хранилища.

В случае с файловой поддержкой отображения:

Если файл расширяются, содержимое файла между старым концом файла и новым концом файла не гарантировано 0; поведение определяется файловой системой.

И в случае анонимного отображения (при поддержке файла подкачки):

Исходное содержание страниц в объекте отображения файла при поддержке файловой операционной системы пейджинговой являются 0 (ноль).

+0

У вас есть ссылка на источник, я хотел бы посмотреть на детали. – LaFleur

+1

Microsoft не может делать никаких обещаний о файловой системе, она не находится под их контролем. Тем не менее, нет никакого общего использования, которое не генерирует нули. –

+0

@LaFleur http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537.aspx –

 Смежные вопросы

  • Нет связанных вопросов^_^