Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


”пражнени€. 3.1. »спользу€ функции GetDiskFreeSpace и GetDiskFreeSpaceEx, определите, насколько разреженным оказываетс€ файловое пространство




3.1. »спользу€ функции GetDiskFreeSpace и GetDiskFreeSpaceEx, определите, насколько разреженным оказываетс€ файловое пространство, распредел€емое различными верси€ми операционной системы Windows. Ќапример, создайте новый файл, установите дл€ указател€ файла большое значение, задайте размер файла и исследуйте наличие свободного пространства на жестком диске при помощи функции GetDiskFreeSpace. Ёту же функцию Windows можно использовать дл€ определени€ того, чтобы определить, каким образом сконфигурирован диск в терминах секторов и кластеров. ќпределите, инициализируетс€ ли выделенное дл€ вновь созданного файла дисковое пространство. –ешение в виде исходного текста функции FreeSpace.с доступно на Web-сайте книги. —равните результаты, полученные дл€ столь различных систем, как Windows NT и Windows 9x. ѕредставл€ет интерес также исследование вопроса о том, как сделать файл разреженным.

3.2. „то произойдет, если длину файла задать такой, чтобы его размер превышал объем диска? ќбеспечивает ли Windows из€щный выход из функции в случае ее неудачного завершени€?

3.3. »змените предоставл€емую на Web-сайте программу tail.с таким образом, чтобы в ней можно было обойтись без применени€ функции SetFilePointer; воспользуйтесь дл€ этого структурой OVERLAPPED.

3.4. »сследуйте значение пол€ "количество ссылок" (nNumberOfLinks), полученное с использованием функции GetFileInformationByHandle. ¬сегда ли оно равно 1? –азличаютс€ ли ответы на этот вопрос дл€ файловых систем NTFS и FAT? He включают ли значени€ счетчиков ссылок жесткие ссылки и ссылки из родительских каталогов и подкаталогов, как это имеет место в UNIX? ќткрывает ли Windows каталог как файл дл€ получени€ дескриптора, прежде чем использовать эту функцию? „то можно сказать о €рлыках, поддерживаемых пользовательским интерфейсом?

3.5. ¬ программе 3.2 поиск текущего и родительских каталогов осуществл€етс€ с использованием имен "." и "..". „то произойдет в случае, если файлы с такими именами действительно существуют? ћогут ли файлы иметь такие имена?

3.6. «начени€ какого времени вывод€тс€ в программе 3.2 Ч местного или UCT? ѕри необходимости измените программу таким образом, чтобы выводимые значени€ соответствовали местному времени.

3.7. ”совершенствуйте программу 3.2 таким образом, чтобы в выводимый список включались также текущий (".") и родительский ("..") каталоги (завершенна€ программа находитс€ на Web-сайте).  роме того, добавьте опции, позвол€ющие нар€ду с датой и временем последнего изменени€ отображать дату и врем€ создани€ файла, а также дату и врем€ последнего доступа к нему.

3.8. Ќапишите программу, котора€ реализует команду rm, позвол€ющую удал€ть файлы, изменив дл€ этого функцию ProcessItem в программе 3.2. –ешение доступно на Web-сайте.

3.9. ”совершенствуйте команду cp из главы 2, предназначенную дл€ копировани€ файлов, таким образом, чтобы она позвол€ла копировать файлы в указанный каталог. ƒополнительно предусмотрите опцию рекурсивного копировани€ файлов (параметр Цr) и опцию сохранени€ вместе с копией также времени последнего изменени€ файла (параметр Цр). ƒл€ реализации опции рекурсивного копировани€ файлов вам потребуетс€ создать новые каталоги.

3.10. Ќапишите программу mv, котора€ реализует одноименную команду UNIX, позвол€ющую переместить целиком любой каталог. ѕри этом имеет существенное значение, осуществл€етс€ ли перемещение файла или каталога на другой диск или они остаютс€ на прежнем диске. ¬ случае смены диска используйте операцию копировани€ файлов, в противном случае используйте команды MoveFile или MoveFileEx.

3.11. ”совершенствуйте программу 3.3 (touch) таким образом, чтобы новое врем€ создани€ файла можно было указывать в командной строке.  оманда UNIX допускает (по выбору) указание метки времени после обычных параметров, но перед именами файлов. ћетки даты и времени имеют формат MMddhhmm [уу], где ћћ Ч мес€цы, dd Ч дни, hh Ч часы, mm Ч минуты, уу Ч года. ƒвух цифр дл€ обозначени€ года нам будет недостаточно, поэтому предусмотрите дл€ указани€ года четыре разр€да.

3.12. ѕрограмма 3.1 рассчитана на работу с большими файловыми системами NTFS. ≈сли на вашем жестком диске имеетс€ достаточно много свободного места, протестируйте работу этой программы на файлах гигантских размеров (свыше 4 √байт). ѕроверьте, насколько корректно работает 64-битова€ арифметика. ¬ыполн€ть это упражнение на сетевом диске без предварительного разрешени€ администратора сети не рекомендуетс€. «авершив работу над этим упражнением, не забудьте удалить тестовый файл.

3.13. Ќапишите программу, котора€ блокирует заданный файл и удерживает его в блокированном состо€нии в течение длительного времени (веро€тно, вызахотите воспользоватьс€ функцией Sleep). ¬оспользовавшись любым текстовым редактором, попытайтесь получить доступ к файлу (используйте текстовый файл) в период действи€ блокировки. „то при этом происходит? «аблокирован ли файл должным образом? ¬ы также можете написать программу, предлагающую пользователю задать блокировку дл€ тестового файла. „тобы проверить, срабатывает ли блокировка описанным образом, запустите на выполнение два экземпл€ра программы в разных окнах. –ешение этого упражнени€ содержитс€ в файле TestLock.c, наход€щемс€ на Web-сайте.

3.14. »сследуйте представление временных характеристик файла Windows в формате данных FILETIME. ¬ этом формате используютс€ 64-битовые счетчики, выражающие в 100-наносекундных единицах длительность истекшего периода времени, отсчитываемого от 1 €нвар€ 1601 года.  огда исчерпаютс€ показани€ этого счетчика?  акова максимально допустима€ дата дл€ временных характеристик файлов UNIX?

3.15. Ќапишите интерактивную утилиту, в которой пользователю предлагаетс€ ввести им€ раздела реестра и им€ значени€ реестра. ќтобразите текущее значение и предложите пользователю указать новое.

3.16. ¬ этой главе, как и в большинстве других глав книги, описываютс€ наиболее важные функции. ќднако во многих случа€х вам могут оказатьс€ полезными и другие функции. Ќа страницах оперативного справочного руководства дл€ каждой функции приведены ссылки на родственные функции. ќзнакомьтесь с некоторыми из них, такими, например, как FindFirstFileEx, ReplaceFile, SearchPath или WriteFileGather. Ќекоторые функции доступны не во всех верси€х NT5.






ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-09-20; ћы поможем в написании ваших работ!; просмотров: 815 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—ложнее всего начать действовать, все остальное зависит только от упорства. © јмели€ Ёрхарт
==> читать все изречени€...

1404 - | 1345 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.011 с.