Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка ПО ОСРВ заочники.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.72 Mб
Скачать

3.9.5. Размер файла

Размер файла, каталога и именованного программного канала представляется в выводе числом хранимых байтов в таких файлах. Программы могут увеличить размер файла добавлением в него данных. Программы могут обнулить размер файла с помощью системного вызова creat. Программы не могут сокращать размер файла до некоторой ненулевой длины. (Утверждение слишком категорично. Для сокращения размера можно использовать системный вызов truncate. - Примеч. ред.)

3.9.6. Время последней модификации и доступа

Каждый файл имеет три временных отметки: время последней модификации файла, время последнего чтения из файла и время последней модификации статусной информации файла (такие как идентификатор собственника или права доступа). Ядро автоматически модифицирует значения этих времен, когда программы пишут в файлы или читают из файла. Это может показаться странным, но вы можете написать программы, которые устанавливали бы произвольные значения для времени последней модификации и времени последнего доступа.

Изменение значений времен последней модификации и последнего доступа к файл|

С помощью системного вызова utime можно устанавливать время последней модификации и время последнего доступа к файлу. Для того чтобы использовать системный вызов utime, создается структура, в которой находятся два элемента time_t, один для хранения времени доступа, а другой - для времени модификации. Затем происходит вызов utime, где задается имя файла и указатель на эту структуру. Ядро устанавливает в этой структуре значения времени доступа и времени модификации для этого файла. В итоге сведем свойства вызова в таблицу:

utime

НАЗНАЧЕНИЕ

Изменение времени модификации и доступа к файлу

INCLUDE

#inciude<sys/time.h>

#inciude<utime.h>

ИСПОЛЬЗОВАНИЕ

#inciude<sys/types.h>

int utimefchar *path, struct utimbuf *newtimesj

АРГУМЕНТЫ

path - путь к файлу

newtimes - указатель на структуру utimbuf См, более детально в utime. h

КОДЫ ВОЗВРАТА

-1 – при ошибке

0 - при успехе

Почему у вас может появиться желание изменить время последней модификации или последнего доступа? Использование системного вызова utime будет полезно, в частности, когда вы извлекаете файлы из копий (backups) и архивов. Рассмотрим набор файлов, который был сброшен в backup. При хранении этого набора на диске или на ленте эти

файлы будут иметь свои первоначальные значения времен модификации. Когда програм­ма восстанавливает файлы из backup, то она гарантирует, что получит файл назад с пра­вильным временем модификации. Программа, которая копирует файлы из места хранения backup, выполняет два действия. Во-первых, она копирует данные в новый файл. Затем она изменяет время модификации и время доступа так, чтобы они были равны значениям для оригинальных файлов, которые остались в backup на диске. Таким образом, ваши восстановленные файлы имеют то же содержимое и те же свойства, что и оригинальные файлы.

Команды Shell для изменения времени модификации и времени доступа. Обычная Unix-ко­манда touch выполняет установку значений времени модификации и времени доступа к файлам. В документации приведены подробности об этой команде.