Книга: Системное программирование в среде Windows
Пример: установка меток времени файла
Пример: установка меток времени файла
Программа 3.3 реализует UNIX-команду touch, предназначенную для изменения кода защиты файлов и обновления меток времени до текущих значений системного времени. В упражнении 3.11 от вас требуется расширить возможности функции touch таким образом, чтобы новые значения меток времени можно было указывать в параметрах командной строки.
Программа 3.3. touch: установка меток даты и времени файла
/* Глава 3. команда touch. */
/* touch [параметры] [файлы] */
#include "EvryThng.h"
int _tmain(int argc, LPTSTR argv[]) {
SYSTEMTIME SysTime;
FILETIME NewFileTime;
LPFILETIME pAccessTime = NULL, pModifyTime = NULL;
HANDLE hFile;
BOOL Flags[MAX_OPTIONS], SetAccessTime, SetModTime, CreateNew;
DWORD CreateFlag;
int i, FileIndex;
FileIndex = Options(argc, argv, _T("amc"), &Flags[0], &Flags[1], &Flags[2], NULL);
SetAccessTime = !Flags[0];
SetModTime = !Flags[1];
CreateNew = !Flags[2];
CreateFlag = CreateNew ? OPEN_ALWAYS : OPEN_EXISTING;
for (i = FileIndex; i < argc; i++) {
hFile = CreateFile(argv[i], GENERIC_READ | GENERIC_WRITE, 0, NULL, CreateFlag, FILE_ATTRIBUTE_NORMAL, NULL);
GetSystemTime(&SysTime);
SystemTimeToFileTime(&SysTime, &NewFileTime);
if (SetAccessTime) pAccessTime = &NewFileTime;
if (SetModTime) pModifyTime = &NewFileTime;
SetFileTime(hFile, NULL, pAccessTime, pModifyTime);
CloseHandle(hFile);
}
return 0;
}
- 64-битовая файловая система
- Указатели файлов
- Определение размера файла
- Пример: обновление записей, находящихся в произвольном месте файла
- Атрибуты файлов и управление каталогами
- Точки монтирования
- Пример: вывод списка атрибутов файла
- Пример: установка меток времени файла
- Стратегии обработки файлов
- Блокирование файлов
- Реестр
- Управление системным реестром
- Пример: вывод списка разделов и содержимого реестра
- Резюме
- Упражнения
- ГЛАВА 3 Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром
- Расширенная установка InterBase-сервера
- Пример установочного скрипта
- Пример из практики
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Эффективная работа с временными файлами сортировки
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Ограничение времени ожидания для транзакций (Lock timeout)
- Примеры получения статистики
- Пример применения метода «пять почему»
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase