Пример: установка меток времени файла
Пример: установка меток времени файла
Программа 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;
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Установка размера файла, инициализация файла и разреженные файлы
Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла
Опрос и установка часов реального времени, и кое-что еще
Опрос и установка часов реального времени, и кое-что еще Независимо от применения таймеров, вы можете также опрашивать и устанавливать часы реального времени, а также и плавно подстраивать их. Для этих целей можно использовать следующие
11.3.6. Изменение временных меток файла
11.3.6. Изменение временных меток файла Владелец файла может изменять mtime и atime файла на любое желаемое значение. Это делает такие метки бесполезными для целей аудита, но позволяет инструментам архивирования вроде tar и cpio сбрасывать временные метки файлов в то значение,
Пример: клиент времени и даты
Пример: клиент времени и даты В листинге 11.5 показан наш клиент времени и даты из листинга 1.1, переписанный с использованием функции tcp_connect.Листинг 11.5. Клиент времени и даты, переписанный с использованием функции tcp_connect//names/daytimetcpcli.c 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5 int
Пример: сервер времени и даты
Пример: сервер времени и даты В листинге 11.7 показан наш сервер времени и даты из листинга 4.2, переписанный с использованием функции tcp_listen.Листинг 11.7. Сервер времени и даты, переписанный с использованием функции tcp_listen//names/daytimetcpsrv1.c 1 #include "unp.h" 2 #include <time.h> 3 int 4 main(int argc, char
Пример: не зависящий от протокола UDP-клиент времени и даты
Пример: не зависящий от протокола UDP-клиент времени и даты Теперь мы перепишем наш клиент времени и даты, показанный в листинге 11.3, так, чтобы в нем использовалась наша функция udp_client. В листинге 11.10 представлен не зависящий от протокола исходный код.Листинг 11.10. UDP-клиент
Пример: не зависящий от протокола UDP-сервер времени и даты
Пример: не зависящий от протокола UDP-сервер времени и даты В листинге 11.13 представлен наш сервер времени и даты, полученный путем модификации листинга 11.8 и предназначенный для использования UDP.Листинг 11.13. Не зависящий от протокола UDP-сервер времени и даты//names/daytimeudpsrv2.c 1
Пример: сервер времени и даты в качестве демона
Пример: сервер времени и даты в качестве демона В листинге 13.2 представлено изменение нашего сервера времени и даты, не зависящего от протокола. В отличие от сервера, показанного в листинге 11.8, в нем вызывается функция daemon_init, чтобы этот сервер мог выполняться в качестве
Установка драйвера из INF-файла
Установка драйвера из INF-файла Рассмотрим ситуацию, когда для установки оборудования используется набор из INF-файлов.Откройте Панель управления и запустите механизм Диспетчер устройств. В результате откроется окно, в котором вы можете видеть список всех устройств,
Пример 9-3. Еще один пример ограничения времени ожидания ввода от пользователя
Пример 9-3. Еще один пример ограничения времени ожидания ввода от пользователя #!/bin/bash# timeout.sh# Автор: Stephane Chazelas,# дополнен автором документа.INTERVAL=5 # предел времени ожиданияtimedout_read() { timeout=$1 varname=$2 old_tty_settings=`stty -g` stty -icanon min 0 time ${timeout}0 eval read $varname # или просто read $varname
Пример REG-файла
Пример REG-файла Рассмотрим содержимое одного из файлов реестра на примере части REG-файла раздела HKEY_CURRENT_USERControl PanelMouse. Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERControl
Фальсификация меток времени
Фальсификация меток времени Несколько неочевидной уязвимостью PGP является возможность злоумышленной подделки меток времени на цифровых подписях и сертификатах ключей. Вы можете пропустить этот раздел, если не интересуетесь деталями некоторых протоколов
Защищенное проставление меток времени
Защищенное проставление меток времени Защищенное датирование, или проставление меток времени , заключается в связывании доверенным центром датирования метки времени с определенной "порцией" данных при сохранении их аутентичности и целостности. Причем, важным