Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Файловый указатель

Файловые дескрипторы

Файлы. Введение.

Прежде всего, нужно отметить, что файл - это один из самых важных объектов операционной системы. Нам приходиться постоянно работать с файлами (например, сейчас Вы читаете один из них), а для программиста работа с файлами является суровой повседневностью бытия. Поэтому в этом и последующих уроках мы почтем за честь заполнить эту девственно чистую область в ваших зананиях.

Так что же такое файл?

Говоря простым языком, файл - это именованный блок информации на вашем диске (или любом другом носителе информации). И хотя файл не обязательно располагается на диске непрерывным блоком, в силу фрагментации файловой системы (см. курс железа/администрирования), для пользователя файл представляется в виде конечной последовательности блока байт (массива). Файла всегда имеет имя (имя не может содержать следующие символы: < >: " / |) и необязательное расширение (по расширению операционная система пытается определить тип файла: текстовый, исполняемый, командный и т. п.). Файл также имеет набор атрибутов, характеризующих его, например, является ли данный файл системным или скрытым. То есть при попытке запуска файла операционная система анализирует его имя (+ полный путь к нему), расширение и атрибуты, а только потом вызывает ответное действие.

Возникает вопрос: а как операционная система "помнит" какие файлы обрабатываются, а какие просто "лежат" на диске? Дело в том, что для обработки файла его необхдимо открыть. При успешном открытии файла операционная система назначает ему уникальное целое число - дескриптор (по-умному HANDLE [хэндл]), и все дальнейшие операции с данным файлом происходят только через дескриптор. При закрытии файла его дескриптор "возвращается" в операционную систему и может использоваться повторно. Проблема отслеживания активных дескрипторов само собой возлагается на операционную систему.

Примечание: библиотека функций языка C для работы с файлами, описанная в следующем разделе, в подавляющем большинстве случаев избавляет вас от необходимости работы с дескрипторами.

Если я считал из файла 5 байт, а потом хочу считать еще 5, не получу ли я в таком случае ту же информацию? Нет, так как файлу назначается специальная переменная, называемая файловым указателем (от слова указывать). Ее задачей является хранение текущей позиции в файле. Таким образом, после считывания 5 байт эта переменная будет хранить число 5, после считывания еще 5 байт - 10. Файловый указатель также смещается и при операциях записи в файл. Если вам необходимо считывать/записывать информацию из/в разных/разные частей/части файла, то можно использовать функции по перемещению файлового указателя в заданную позицию (см. следующий раздел урока).

<== предыдущая лекция | следующая лекция ==>
Лекция 16. В самом широком смысле, культура – это весь человечесий опыт, используемый для организации жизнедеятельности людей | Функции для работы с файлами библиотеки языка C
Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 1449; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.