Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.380


Таненбаум Э.- Архитектура компьютера. стр.380

В первом аргументе вызова link находится номер индексного дескриптора. По этому номеру он создает элемент каталога для второго аргумента и помещает номер i-node первого файла в этот элемент каталога. Наконец, он увеличивает число связей в индексном дескрипторе на 1. Вызов unlink удаляет элемент каталога и уменьшает число связей в индексном дескрипторе. Если это число становится равным 0, файл удаляется, и все его блоки помещаются в список свободных блоков.

Виртуальный ввод-вывод в Windows ХР

Windows ХР поддерживает несколько файловых систем, самые важные из которых — NTFS (NT File System — файловая система NT) и FAT (File Allocation Table — таблица размещения файлов). Первая была разработана специально для Windows ХР. Вторая является устаревшей файловой системой для MS-DOS, которая также используется в Windows 95/98 (хотя и с длинными именами файлов). Поскольку система FAT устарела, мы рассмотрим только файловую систему NTFS.

В NTFS имя файла может быть длиной до 255 символов. Имена файлов написаны в кодировке Unicode, благодаря чему люди в разных странах, где не используется латинский алфавит, могут писать имена файлов на их родном языке. Во всех версиях операционной системы, начиная с Windows 2000, тексты меню, сообщений об ошибках и прочих элементов интерфейса хранятся в выделенных для каждого языка конфигурационных файлах, в то время как двоичные файлы едины для всех вариантов языкового окружения. В NTFS прописные и строчные буквы в именах файлов считаются разными (то есть «foo» отличается от «FOO»). К сожалению, в Win32 API прописные и строчные буквы в именах файлов и каталогов не различаются, поэтому это преимущество теряется для программ, использующих подсистему Win32.

Как и в UNIX, файл представляет собой линейную последовательность байтов, максимальная длина которой составляет 264 - 1. Указатели тоже существуют, но их длина не 32, а 64 бита, чтобы можно было поддерживать максималь ную длину файла. Вызовы функций в Win32 API для манипуляций с каталогами и файлами в целом напоминают вызовы функций в UNIX, но большинство из них имеют больше параметров и другую модель защиты. При открытии файла возвращается описатель, который затем используется для чтения и записи файла. В отличие от UNIX, описатели не являются маленькими целыми числами, а стандартный ввод, стандартный вывод и стандартная ошибка не определяются заранее как 0, 1 и 2 (исключение составляет консольный режим). Основные функции Win32 API для управления файлами перечислены в табл. 6.7 (во второй колонке дается эквивалентная функция UNIX).

Таблица 6.7. Основные функции \Мп32 АР1 для ввода-вывода файлов

Функция API

Функция UNIX

Описание

CreateFile

open

Создание файла или открытие существующего файла; функция возвращает описатель

DeleteFile

unlink

Удаление существующего файла

CloseHandle

close

Закрытие файла

ReadFile

read

Считывание данных из файла

WriteFile

write

Запись данных в файл

SetFilePointer

Iseek

Установка файлового указателя на заданное место в файле

SetFileAttributes

stat

Возвращение свойств файла

LockFile

Fcntl

Блокирование области файла, чтобы обеспечить взаимное исключение доступа

UnlockFile

Fcntl

Разблокирование ранее заблокированной области файла

Рассмотрим эти вызовы. Вызов CreateFile используется для создания нового файла и возвращает описатель для них. Эта функция применяется также для открытия уже существующего файла, поскольку в API нет функции open. Мы не будем приводить параметры функций API, поскольку их очень много. Например, функция CreateFile имеет семь параметров:


⇐ Предыдущая страница| |Следующая страница ⇒

.