Установка размера файла, инициализация файла и разреженные файлы
Установка размера файла, инициализация файла и разреженные файлы
Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла содержимое области расширения не определено. Файл будет фактически потреблять выделенные квоты дискового и пользовательского пространств, если только не является разреженным. Файлы можно сжимать с целью уменьшения объема занимаемого ими пространства. Этот вопрос исследуется в упражнении 3.1.
Функция SetEndOfFile устанавливает физический конец файла. Прежде чем выполнять эту операцию, на которую может уйти довольно длительное время, необходимое для записи данных файл с целью его заполнения, можно установить также логический конец файла, используя для этого функцию SetValidFileData. Эта функция определяет ту часть файла, которая, в соответствии с вашими предположениями, в настоящий момент содержит достоверные данные, благодаря чему вы сможете сэкономить время при установке физического конца файла. Часть файла, заключенная между его логическим и физическим концами, называется хвостовиком (tail) и может быть сокращена путем записи оставшихся данных после логического конца файла или в результате дополнительного вызова функции SetValidFileData.
В случае разреженных файлов (sparse files), появившихся в Windows 2000, дисковое пространство расходуется лишь по мере записи данных. Администратор может назначать, какие файлы, каталоги или тома должны быть разреженными. Кроме того, можно назначить существующий файл в качестве разреженного с помощью функции DeviceIoControl, если установить при ее вызове флаг FSCTL_SET_SPARSE. Ситуацию, в которой удобно использовать разреженные файлы, иллюстрирует программа 3.1. К разреженным файлам функция SetValidFileData неприменима.
Файлы FAT нулями автоматически не инициализируются. Согласно документации Microsoft содержимое вновь созданных файлов не определено, что подтверждается экспериментами. Поэтому, если для корректной работы требуется инициализация файлов, приложения должны это делать самостоятельно путем вызова функции WriteFile. Файлы NTFS будут инициализированы, поскольку уровень безопасности С2, обеспечиваемый Windows, требует, чтобы чтение содержимого удаленных файлов было невозможным.
Обратите внимание, что кроме функции SetEndOfFile существуют и другие способы расширения размера файла. Так, можно расширить файл, используя ряд последовательных операций записи, хотя при этом существует риск увеличения степени фрагментации файла; размещение на диске файлов в виде непрерывных блоков большого размера функция SetEndOfFile отдает на откуп операционной системе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Чтение файла
Чтение файла BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) Возвращаемое значение: в случае успешного выполнения (которое считается таковым, даже если не был считан ни один байт из-за попытки чтения с выходом за пределы файла) — TRUE, иначе —
Определение размера файла
Определение размера файла Размер файла можно получить, используя значение указателя файла, возвращаемое функцией SetFilePointer, если при вызове этой функции задать количество байтов, на которое должен быть перемещен указатель файла, равным 0. Для этой же цели можно
Пример: установка меток времени файла
Пример: установка меток времени файла Программа 3.3 реализует UNIX-команду touch, предназначенную для изменения кода защиты файлов и обновления меток времени до текущих значений системного времени. В упражнении 3.11 от вас требуется расширить возможности функции touch таким
4.3.4. Установка размера бумаги
4.3.4. Установка размера бумаги На складке Параметры принтера конфигуратора system-config-printer вы можете задать формат бумаги, загруженной сейчас в принтер (рис 4.15). Рис. 4.15. Выбор формата используемой
Установка драйвера из INF-файла
Установка драйвера из INF-файла Рассмотрим ситуацию, когда для установки оборудования используется набор из INF-файлов.Откройте Панель управления и запустите механизм Диспетчер устройств. В результате откроется окно, в котором вы можете видеть список всех устройств,
10.1.2. Обновление файла
10.1.2. Обновление файла Чтобы открыть файл для чтения и записи, достаточно добавить знак плюс (+) в строку указания режима (см. раздел 10.1.1):f1 = File.new("file1", "r+")# Чтение/запись, от начала файла.f2 = File.new("file2", "w+")# Чтение/запись; усечь существующий файл или создать новый.f3 = File.new("file3", "а+")#
10.1.11. Проверка существования и получение размера файла
10.1.11. Проверка существования и получение размера файла Часто необходимо знать, существует ли файл с данным именем. Это позволяет выяснить метод exist? из модуля FileTest:flag = FileTest::exist?("LochNessMonster")flag = FileTest::exists?("UFO")# exists? является синонимом exist?Понятно, что такой метод не может быть
Б.1.1. Открытие файла
Б.1.1. Открытие файла Чтобы открыть файл и получить дескриптор для работы с ним, необходимо вызвать функцию open(). В качестве аргументов она принимает строку с путевым именем файла и флаги, определяющие способ открытия. С помощью функции open() можно также создать новый файл.
Установка размера столбца
Установка размера столбца Мы уже говорили, что размер столбцов можно варьировать. Пришло время проверить это утверждение на практике. Если вы хотите, чтобы все столбцы в таблице были одинакового размера, наведите курсор на правую границу верхнего индекса
Установка размера кэша на уровне базы данных
Установка размера кэша на уровне базы данных Существует несколько способов конфигурирования размера кэша для конкретной базы данных. Изменения не действуют до тех пор, пока не будет установлено новое соединение с Суперсервером Firebird или не будет соединен новый клиент с
Установка размера кэша по умолчанию
Установка размера кэша по умолчанию Использование gfix является предпочтительным способом установки размера кэша по умолчанию для базы данных. Важно помнить некоторые моменты.* Если вы увеличиваете размер страницы, размер кэша соответственно увеличится. Вы должны
Глава 2 Уменьшение размера ЕХЕ-файла. Использование Windows API
Глава 2 Уменьшение размера ЕХЕ-файла. Использование Windows API • Источник лишних килобайт• Создание окна вручную• Окно с элементами управления• Стандартные диалоговые окна Windows• Установка шрифта элементов управленияНе секрет, что размер скомпилированного ЕХЕ-файла
7.1. Файл и имя файла
7.1. Файл и имя файла Информация на носителях данных (жестких, оптических дисках, дискетах) хранится в файлах. Строгое определение файла звучит так: «файл — это поименованная область на диске». Разберемся, что здесь к чему. При форматировании жесткого диска производится его